如何单击<;a类href>;使用seleniumpython链接问题

如何单击<;a类href>;使用seleniumpython链接问题,python,selenium,xpath,webdriverwait,linktext,Python,Selenium,Xpath,Webdriverwait,Linktext,您好,我是Selenium Python Webdriver的新手。尝试使用find\u element\u by\u link\u text单击链接Abc,但该链接无效 <a class="favorite-link " href="https://onesource.passporthealth.com/_members/query/osusf/Default.aspx?dlpvid=0000&amp;sid=-111111111">

您好,我是Selenium Python Webdriver的新手。尝试使用
find\u element\u by\u link\u text
单击链接
Abc
,但该链接无效

<a class="favorite-link " href="https://onesource.passporthealth.com/_members/query/osusf/Default.aspx?dlpvid=0000&amp;sid=-111111111">Abc</a>
更新: 整个块被嵌入到一个iFrame中。这就是我无法访问的原因。必须切换到那个画面

 driver.find_element_by_link_text("Abc").click()
只需单击带有链接文本Abc的标记

 driver.find_element_by_xpath("//*[text()='Abc']").click()

要单击文本为Abc的元素,可以使用以下任一选项:

  • 使用
    链接文本

    driver.find_element(By.LINK_TEXT, "Abc")
    
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Abc"))).click()
    
  • 使用
    XPATH

    driver.find_element(By.XPATH, "//div[@class='elig-item']//a[@class='favorite-link ' and text()='Abc']").click()
    
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='elig-item']//a[@class='favorite-link ' and text()='Abc']"))).click()
    

理想情况下,要单击需要为导入的元素,可以使用以下任一选项:

  • 使用
    链接文本

    driver.find_element(By.LINK_TEXT, "Abc")
    
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Abc"))).click()
    
  • 使用
    XPATH

    driver.find_element(By.XPATH, "//div[@class='elig-item']//a[@class='favorite-link ' and text()='Abc']").click()
    
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='elig-item']//a[@class='favorite-link ' and text()='Abc']"))).click()
    
  • 注意:您必须添加以下导入:

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

我试过了。但是不起作用。我猜是因为还有class=“收藏夹链接”。可能我必须使用xpath。但是我不知道如何使用它。您可以通过检查从开发人员控制台获取xpath,然后右键单击复制xpath。您只需要在xpath中向上面添加div[@id=''']/,它就可以工作。我还尝试过,我复制的xpath是
浏览器。通过xpath('/*[@id=“favId2861963”]/a')查找元素。单击(),但是没有起作用。表示未找到元素。谢谢你!该块嵌入在iFrame中。这就是我无法访问的原因。必须切换到那个框架。有什么特别的问题吗?它仍然找不到元素。还尝试了Webdriverwait。我总是超时。增加了时间。还没有成功!这很奇怪,现在应该已经成功了。谢谢。我想整个块都嵌入到了一个iFrame中。这就是我无法访问的原因