将Selenium与Python结合使用以单击href按钮

时间:2018-07-18 21:44:42

标签: python selenium selenium-webdriver

我正在使用selenium和python自动执行Web任务。我尝试使用多种不同的功能来尝试单击所需的按钮:

<a href="/crm/tab/Reports">Reports</a>

.find_element_by_link_text("Reports").click()
.find_element_by_id
.find_element_by_name
.find_element_by_class_name
.find_element_by_css_selector

似乎无法完成这项工作,任何建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

使用“ find_elements_by_xpath”。右键单击并从浏览器复制XPATH。

答案 1 :(得分:0)

使用显式等待可能会解决问题。对于显式等待,可以使用ID或XPATH。我更喜欢使用XPATH。要获取XPATH,请右键单击该元素,单击检查,右键单击<a href="/crm/tab/Reports">Reports</a>并选择 Copy ,然后 Copy XPATH 。现在我们有了XPATH,请执行以下操作:

button_xpath = "the xpath of your element"
button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, button_xpath))).click()

上面的代码将等待最多10秒钟,直到找到按钮元素。如果找不到该元素,则将给出TimeoutException。

以下导入是必需的:

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