繁体   English   中英

python xpath对于某些元素似乎不起作用

[英]python xpath doesn't seem to work for some elements

我正在尝试硒。 我已经使用Selenium IDE构建了一个快速脚本。 它登录到页面,打开“搜索”窗口,进行搜索,然后打开其中一个结果。

当我在Selenium IDE中运行测试时,它运行良好。 当我导出到Java JUnit 4测试用例时,它可以正常工作。 但是当我导出到Python 2单元测试时,xpath搜索似乎非常有bug。

范例

该页面具有名称​​为“关键字”的输入元素。 当我使用带有driver.findElement(By.name("keyword")); java搜索时driver.findElement(By.name("keyword")); 一切都很好-它找到了元素。

当我使用带有browser.find_element_by_name("keyword") python搜索时,似乎找不到它。 我也尝试过browser.find_element_by_xpath("//input[@name='keyword']")browser.find_element_by_xpath("/html/body/form/div/ul/li[2]/input") ,第二个是我使用firebug和Copy XPath功能时得到的xpath。

我尝试在搜索输入之前向python代码添加延迟,但无济于事。

有谁知道为什么python调用似乎找不到元素? 这似乎发生在整个Web应用程序页面的不同元素上(但是到目前为止,在我发现的Selenium IDE中却没有发生)...

感谢您提供的任何帮助!

编辑

控制台中显示的错误是:

Traceback (most recent call last):
  File "test.py", line 37, in <module>
    elem = browser.find_element_by_xpath("/html/body/form/div/ul/li[2]/input")
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 213, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 671, in find_element
    {'using': by, 'value': value})['value']
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 156, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 147, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: u'Unable to locate element: {"method":"xpath","selector":"/html/body/form/div/ul/li[2]/input"}'

干杯

耶勒特

事实证明,单击链接时网站正在打开一个新窗口,但驱动程序仍在引用旧窗口。 不知道为什么Selenium IDE导出没有抓住这一点。

无论如何,我必须将驱动程序的窗口设置为新打开的窗口,然后它才能正常运行。

希望这对其他人有帮助。

干杯

耶勒特

检查它是否在iframe中,如果需要,请转到该iframe。

driver.switch_to.default_content() 
driver.switch_to_frame("fameid")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM