在python中使用selenium webdriver查找具有显式等待的元素

2024-05-13 08:13:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试图找到带有链接文本的元素,我正在使用以下代码

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>

我怎样才能解决这个问题??


Tags: ofto元素bydriverlinkelementwindow
1条回答
网友
1楼 · 发布于 2024-05-13 08:13:22

如果您使用^{},那么应该有一个与该文本完全相同的链接:Followers,但是您有Followers 43,799

在您的情况下,应该使用^{}代替:

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()

相关问题 更多 >