我正在尝试硒。我使用 Selenium IDE 构建了一个快速脚本。它登录到一个页面,打开一个“搜索”窗口,进行搜索,然后打开一个结果。
当我在 Selenium IDE 中运行测试时,它运行良好。当我导出到 Java JUnit 4 测试用例时,它工作正常。但是当我导出到 Python 2 单元测试时,xpath 搜索似乎非常有问题......
示例:
该页面有一个 name='keyword' 的输入元素。当我使用 java 进行搜索时driver.findElement(By.name("keyword"));
,一切都很好 - 它找到了元素。
当我使用 python 搜索时browser.find_element_by_name("keyword")
,它似乎找不到它。我也尝试过browser.find_element_by_xpath("//input[@name='keyword']")
and browser.find_element_by_xpath("/html/body/form/div/ul/li[2]/input")
,其中第二个是我使用 firebug 和该Copy XPath
功能时得到的 xpath。
在搜索输入之前,我尝试向 python 代码添加延迟,但无济于事。
有谁知道为什么 python 调用似乎找不到元素?这似乎发生在整个网络应用程序页面中的不同元素上(但在我到目前为止发现的 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"}'
干杯
贾勒特