我正在尝试使用链接文本查找元素,我正在使用以下代码
handle = driver.window_handles #handle for windows driver.switch_to.window(handle[1]) #switching to new window link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Followers ")))
而且我正在追踪
Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Followers "))) File "C:\Python27\lib\site-packages\selenium\webdriver\support\wait.py", line 71, in until raise TimeoutException(message) TimeoutException: Message: ''
我尝试选择的元素的HTML是
<a href="/Kevin-Rose/followers">Followers <span class="profile_count">43,799</span></a>
我怎么解决这个问题??
如果您使用By.LINK_TEXT,则应该有一个包含该文本的链接:Followers,但是您有Followers 43,799。
By.LINK_TEXT
Followers
Followers 43,799
对于您的情况,应By.PARTIAL_LINK_TEXT改为使用:
By.PARTIAL_LINK_TEXT
wait.until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, 'Followers')))
更新 这是工作示例:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() # CHANGEME driver.get('http://www.quora.com/Kevin-Rose') element = WebDriverWait(driver, 2).until( EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "Followers")) ) element.click()