如何在XPath中选择空元素?

Uri*_*Uri 4 selenium xpath

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

self.assertEqual(1, len(self.selenium.find_elements_by_xpath("//a[@href='#'][@class='button save-as'][@title='Save As...'][text()='Save As']")))
Run Code Online (Sandbox Code Playgroud)

(该类继承自LiveServerTestCase).

问题是有时会有没有文本的元素,如果我们选择[text()='']它失败(len为0).如何选择没有文字的元素?

更新:因为[text()='']没有用,我不得不断言两行来断言没有文字:

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)
Run Code Online (Sandbox Code Playgroud)

现在我可以断言同一行:

self.assertEqual(1, len(self.selenium.find_elements_by_xpath("//a[@href='#'][@class='button properties'][@title='Properties'][not(text())]")))
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 13

你可以使用XPath的 not()功能.

//a[@href='#'][@class='button save-as'][@title='Save As...'][not(text())]
Run Code Online (Sandbox Code Playgroud)