使用Selenium和Python查找元素并单击它

使用Selenium和Python查找元素并单击它,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我正在制作一个脚本,它将在网站中导航并为我执行一些操作。但我一直在努力让我的脚本点击以下元素: <a href="JavaScript:OnCopy(22291488);" title="Copy Trip"><img src="../Images/copy.gif"></a> 这不起作用,因此我愿意接受如何解决此问题的建议。所需元素是已启用的元素,因此要单击您必须诱导的元素,才能使元素成为可单击

我正在制作一个脚本,它将在网站中导航并为我执行一些操作。但我一直在努力让我的脚本点击以下元素:

<a href="JavaScript:OnCopy(22291488);" title="Copy Trip"><img src="../Images/copy.gif"></a>

这不起作用,因此我愿意接受如何解决此问题的建议。

所需元素是已启用的元素,因此要单击您必须诱导的元素,才能使
元素成为可单击的()
,您可以使用以下任一选项:

  • 使用
    CSS\u选择器

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[title='Copy Trip']>img[src$='/Images/copy.gif']"))).click()
    
  • 使用
    XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@title='Copy Trip' and contains(@href, 'OnCopy')]/img[contains(@src, '/Images/copy.gif')]"))).click()
    
  • 注意:您必须添加以下导入:

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

您能提供更多的代码和您试图单击的元素的url吗?同时提供实例化驱动程序的代码。//a[包含(@href,“OnCopy(22291488)”)
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@title='Copy Trip' and contains(@href, 'OnCopy')]/img[contains(@src, '/Images/copy.gif')]"))).click()
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC