如何使用Selenium和Python通过链接文本点击按钮



我知道,有很多关于这项任务的教程。但我似乎做错了什么,我需要帮助告诉我如何按下它,而不需要通过短信。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.LINK_TEXT, 'login or register'))
)
element.click()
except:
print('exception occured')
driver.quit()

我正试着按下";登录或注册";来自wilds.io网站的按钮,但10秒后似乎找不到该按钮。我可能用错误的方式访问了按钮。

要点击文本为登录或注册的元素,您必须诱导WebDriverWait等待element_to_be_clickable(),您可以使用以下定位器策略之一:

  • 使用LINK_TEXT:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "login or register"))).click()
    
  • 使用PARTIAL_LINK_TEXT:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "login or register"))).click()
    
  • 使用XPATH使用text():

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[text()='login or register']"))).click()
    
  • 使用XPATH使用contains():

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[contains(., 'login or register')]"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

相关内容

  • 没有找到相关文章

最新更新