【问题标题】:button not visible to selenium although clearly loaded按钮虽然清楚地加载,但对硒不可见
【发布时间】:2019-09-27 02:39:13
【问题描述】:

我正在尝试在linkedin上自动搜索“轻松申请”工作

由于某种原因,当我尝试单击“轻松申请”工作的“申请”按钮时,我收到错误消息“无法滚动到视图中” 虽然看起来它是可见的并且已满载

driver.find_element_by_xpath("//button[@data-control-name='filter_pill_apply']").click()

我正在尝试操作的元素的 HTML:

<button data-control-name="filter_pill_apply" id="ember2631" class="facet-collection-list__apply-button ml2 artdeco-button artdeco-button--2 artdeco-button--primary ember-view" type="button"><!---->
<span class="artdeco-button__text">
    Apply
</span>
</button>

另外,似乎没有向下滚动可以解决这个问题,我该怎么办?

【问题讨论】:

  • 你能添加一些页面源HTML吗?这将有助于追查问题。
  • 您找到的按钮不可见。要么有多个按钮与您的定位器匹配,要么您的定位器有误。如果您需要更多帮助,您将需要发布一些 HTML 并进行更多研究并更新您的问题。
  • ``` ``` 这是我试图做的 HTML 部分操纵,我试图添加一张图片,但我在stackoverflow上的排名并不高@Christine @JeffC
  • @avish HTML 就好了,反正比图片好,所以不用担心添加图片。我已经更新了答案和新的 XPath 来尝试。如果这不起作用,请提供您正在自动化的页面的 LinkedIn URL

标签: python html selenium linkedin


【解决方案1】:

您可以使用以下路径单击页面右侧的“轻松申请”小文本,该文本显示在某些职位列表旁边。

driver.find_element_by_xpath("//span[contains(@class, 'easy-apply')]").click();

您可以使用下一个选择器单击职位描述本身上的“轻松申请”大按钮,该按钮会在您从职位列表中选择职位后出现:

driver.find_element_by_xpath("//span[text()='Easy Apply']//ancestor::button").click();

【讨论】:

  • 感谢@Christine,不幸的是它没有工作,我收到错误:无法找到元素://button[span[contains(text(), 'Apply')]] URL 是: linkedin.com/jobs/search/?f_LF=f_JIYN&keywords=software我可以点击“Easy Apply”复选框,但不能点击apply按钮,可能它被另一个css元素覆盖了?
  • @avish 我已经导航到该页面并测试了另一个应该指向“Easy Apply”按钮的 XPath。让我知道这是否有效。我对您要单击哪个“轻松应用”有些困惑,因为有两个 - 页面左侧的小文本和页面右侧的较大按钮。
  • 我正在尝试应用搜索过滤器,以便它只会寻找“轻松申请”的工作,我认为我可以通过在我提供给您的 url 上实际加载 webdriver 来绕过它,其中过滤器选项已经打开,从那里登录,它可能会工作@Christine
  • 点击链接时没有应用过滤器,但我手动应用了它。如果将 webdriver 加载到 URL 不应用 easy apply 过滤器,我们可以使用 webdriver 来应用它。如果您需要帮助,请告诉我。
  • 我使用了另一种解决方案来解决它,首先登录,而不是使用已应用所选过滤器的 URL 手动加载 webDriver,我应该发布一个更通用的问题 - “如何制作元素在视口中可见”,我要感谢您的帮助,我从中学到了@Christine
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 2011-02-11
  • 1970-01-01
相关资源
最近更新 更多