首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XPath中选择空元素?

如何在XPath中选择空元素?
EN

Stack Overflow用户
提问于 2014-05-21 09:41:19
回答 1查看 15.9K关注 0票数 7

我们使用Django 1.4测试和Selenium选择元素,如下所示:

代码语言:javascript
复制
self.assertEqual(1, len(self.selenium.find_elements_by_xpath("//a[@href='#'][@class='button save-as'][@title='Save As...'][text()='Save As']")))

(类继承自LiveServerTestCase)。

问题是,有时有些元素没有文本,如果我们用[text()='']进行选择,它就会失败( len是0)。如何选择没有文本的元素?

Update:因为[text()='']没有工作,所以我不得不断言两行来断言没有文本:

代码语言:javascript
复制
self.assertEqual(1, len(self.selenium.find_elements_by_xpath("//a[@href='#'][@class='button properties'][@title='Properties']")))
self.assertEqual("", self.selenium.find_element_by_xpath("//a[@href='#'][@class='button properties'][@title='Properties']").text)

现在,我可以用一行断言相同的内容:

代码语言:javascript
复制
self.assertEqual(1, len(self.selenium.find_elements_by_xpath("//a[@href='#'][@class='button properties'][@title='Properties'][not(text())]")))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 09:53:35

您可以使用XPath的not()函数。

代码语言:javascript
复制
//a[@href='#'][@class='button save-as'][@title='Save As...'][not(text())]
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23779467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档