Python webdriver getText



我通常使用 java 的 webdriver,但现在我需要用 webriver 和 Python 来制作

花一整天的时间,无法理解如何阅读Python中的文本

我需要按 xpath 读取并断言名称

在爪哇中:

{driver.findElement(By.xpath("//*[@id='reportCriteria']/fieldset[1]/fieldset[1]/dl/dd/div/span/label")).getText());    
assertEquals(testedVenueName, driver.findElement(By.xpath("//*[@id='reportCriteria']/fieldset[1]/fieldset[1]/dl/dd/div/span/label")).getText());}

在 Python 中:

{inputElement = self.driver.find_elements_by_xpath("//*[@id='pagemenu']/li/a")
self.assertEqual("Home", inputElement)}

结果:"家"=![]

尝试将".text"放在第一行或"inputElement.text"后,给出错误消息属性错误:"列表"对象没有属性"文本"

完整代码:

class Test(unittest.TestCase):
    def setUp(self):
        profile = webdriver.FirefoxProfile()
        profile.native_events_enabled = True
        self.driver = webdriver.Firefox(profile)
    def testWebtest_1(self):
        self.driver.get("http://www.psvitahub.com/")
        inputElement = self.driver.find_elements_by_xpath("//*[@id='pagemenu']/li/a")                                    
        self.assertEqual("Home", inputElement.text)
    def tearDown(self):
        self.driver.close()
if __name__ == "__main__":
    unittest.main()
  1. 您使用的是find_elements_by_xpath,而不是find_element_by_xpath,因此您从页面中获取与 xpath 匹配的所有元素的列表,而不是您期望的单个元素。

  2. 您从调用中得到一个空列表,这让我认为您的 xpath 不正确。

尝试使用CSS选择器:

self.driver.find_element_by_css("ul#pagemenu li.current_page_item a")

Firebug 中的 XPath 看起来像:"/html/body/div[2]/div/ul/li/a"

最新更新