私はセレンを試しています。Selenium IDE を使用して簡単なスクリプトを作成しました。ページにログインし、「検索」ウィンドウを開き、検索を実行して、結果の 1 つを開きます。
Selenium IDE でテストを実行すると、問題なく動作します。Java JUnit 4 テスト ケースにエクスポートすると、正常に動作します。しかし、Python 2 単体テストにエクスポートすると、xpath 検索は非常にバグがあるようです...
例:
ページには name='keyword' の入力要素があります。Javaを使用して検索するとdriver.findElement(By.name("keyword"));
、すべて問題ありません-要素が見つかります。
で python を使って検索するとbrowser.find_element_by_name("keyword")
、見つからないようです。2 つ目は、 firebugbrowser.find_element_by_xpath("//input[@name='keyword']")
と機能browser.find_element_by_xpath("/html/body/form/div/ul/li[2]/input")
を使用したときに得られる xpathCopy 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"}'
乾杯
ジャレット