【问题标题】:Cannot accessing link using selenium python via xpath or link text无法通过 xpath 或链接文本使用 selenium python 访问链接
【发布时间】:2021-05-20 07:23:47
【问题描述】:

The Webpage

<div class="span3"> <div class="stat-panel"> <div class="stat-cell1 bg-stats1 valign-middle" style="text-align: center;"> <a href="co-op/coopjobs.htm"><strong>View and Apply for<br> Co-op Jobs</strong></a> </div> </div> </div>

这是那个框的代码的一个更广泛的看法,可点击的部分似乎是a标签和强标签。我不确定为什么 xpath 不起作用,但你知道如何为强者实现按文本查找吗?

我不确定如何访问上面的链接。我想点击使用上面代码和 selenium webdriver python 编写的链接。

有谁知道如何通过链接文本查找强元素,我不知道如何实现

【问题讨论】:

    标签: python selenium web automation


    【解决方案1】:

    XPATH:

    //a[contains(@href, "co-op/coopjobs.htm")]
    

    然后像这样点击它:

    driver.find_element_by_xpath("//a[contains(@href, "co-op/coopjobs.htm")]").click()
    

    对于点击锚标记,请记住始终首选linkText 或partialLinkText。

    【讨论】:

      【解决方案2】:

      这应该可行:

      driver.find_element_by_xpath("//a[contains(@href,'co-op/coopjobs.htm')]").click()
      

      如果这对您不起作用,我们需要更多信息。
      所以,上面的定位器不是唯一的。
      您需要使用以下内容:

      driver.find_element_by_xpath("//a[contains(@href,'co-op/coopjobs.htm') and(contains(text(),'View and Apply for'))]").click()
      

      试试这个:

      from selenium.webdriver.common.action_chains import ActionChains
      
      element = driver.find_element_by_xpath("//a[contains(@href,'co-op/coopjobs.htm') and(contains(text(),'View and Apply for'))]")
      
      actions = ActionChains(driver)
      actions.move_to_element(element).perform()
      element.click()
      

      【讨论】:

      • 所以我愚蠢地意识到这可能是由于打开了多个标签。但即使在关闭了不相关的标签后,事实证明不是这样。也许这会改变一些东西?
      • 时刻!最初你在第一个浏览器窗口,然后你点击了一些按钮等,然后打开了第二个浏览器窗口,视觉上你看到焦点现在切换到第二个窗口,我们试图点击的元素位于第二个窗口窗户?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 2017-10-10
      • 2016-03-06
      • 2010-10-29
      • 1970-01-01
      • 2020-07-21
      相关资源
      最近更新 更多