PythonとSeleniumの初心者であり、そのためのプログラミングです。
特定のリンクに到達するためにセレンを自動化しようとしています。この場合、リンクテキスト「B」に関連付けられたリンクをヒットさせたいと思います。
<li><a href="javascript:__doPostBack('ctl00$IndexControl1','B')">B</a>
このウェブサイトで:
私はこのコードを使用しています:
def get_single_link_using_find_elements_by_link_name(url, link_name):
driver = webdriver.Firefox()
driver.get(url)
driver.implicitly_wait(10)
time.sleep(20)
element = driver.find_element_by_link_text(link_name)
element.click()
問題はレンダリングの問題である可能性があると思ったので、いくつかの待機条件を追加しましたが、それらは役に立ちませんでした。
次のエラーが発生します。
Traceback (most recent call last):
File "C:\Python27\programs\selenium commands.py", line 50, in <module>
get_single_link_using_find_elements_by_link_name(url, link_name)
File "C:\Python27\programs\selenium commands.py", line 47, in get_single_link_using_find_elements_by_link_name
element = driver.find_element_by_link_text(link_name)
File "C:\Python27\lib\site-packages\selenium-2.25.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 237, in find_element_by_link_text
return self.find_element(by=By.LINK_TEXT, value=link_text)
File "C:\Python27\lib\site-packages\selenium-2.25.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 671, in find_element
{'using': by, 'value': value})['value']
File "C:\Python27\lib\site-packages\selenium-2.25.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 156, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium-2.25.0-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 147, in check_response
raise exception_class(message, screen, stacktrace)
NoSuchElementException: Message: u'Unable to locate element: {"method":"link text","selector":"B"}'
奇妙なことに、同じコードは、同じサイトの一部である次のURLで機能します: http ://www.lw.com/people?searchIndex = A
何か案は?