Как правильно использовать find_element_by_link_text (), чтобы не вызывать NoSuchElementException?

У меня есть такой HTML-код:

<div class="links nopreview"><span><a class="csiAction"
href="/WebAccess/home.html#URL=centric://REFLECTION/INSTANCE/_CS_Data/null">Home</a></span>&nbsp;•&nbsp;<span><span><a class="csiAction"
href="/WebAccess/home.html#URL=centric://SITEADMIN/_CS_Site">Setup</a></span>&nbsp;•&nbsp;</span><span><a
title="Sign Out" class="csiAction csiActionLink">Sign Out</a></span></div>

Я хотел бы щелкнуть ссылку с текстом Home . Поскольку эта ссылка Home появляется после входа в систему, у меня есть такой код:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import re

browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://myServer/WebAccess/login.html") # Load App page
elem = browser.find_element_by_name("LoginID") # Find the Login box
elem.send_keys("Administrator")
elem = browser.find_element_by_name("Password") # Find the Password box
elem.send_keys("Administrator" + Keys.RETURN)
#try:
elem = browser.find_element_by_link_text("Home")
elem.click()

Часть до входа в систему работает отлично. Однако предпоследняя строка проблематична

elem = browser.find_element_by_link_text("Home")

Это вызывает исключение NoSuchElementException там, где есть ссылка на главную, как вы можете видеть из кода HTML.

raise exception_class(message, screen, stacktrace)
NoSuchElementException: Message: u'Unable to locate element: {"method":"link text","selector":"Home"}' 

Любые указания относительно того, что я делаю неправильно, пожалуйста?

18
задан kenorb 17 May 2015 в 18:17
поделиться