我们选择使用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']")))
(该类继承自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)
现在我可以用一行断言:
self.assertEqual(1, len(self.selenium.find_elements_by_xpath("//a[@href='#'][@class='button properties'][@title='Properties'][not(text())]")))
答案 0 :(得分:13)
您可以使用XPath的not()
功能。
//a[@href='#'][@class='button save-as'][@title='Save As...'][not(text())]