【问题标题】:Python-selenium scrolling & find desired textPython-selenium 滚动并找到所需的文本
【发布时间】:2021-03-12 15:59:18
【问题描述】:

我正在使用 python selenium 网络驱动程序。在我的项目中,我在一个网站中有两个窗格。

窗格 1: ' tabindex="0" ' 是窗格 1 的属性。

在此窗格中,希望在此窗格中查找带有文本“11/23/2020”的 CSS 类“_1VzZY”。

我应该向上滚动到顶部,直到找到具有匹配值“11/23/2020”的这个 CSS 类。

窗格 2: 在此窗格中的“#pane-side”id 是窗格 2 的 id。

在此窗格中,我应该向下滚动以在其中找到自定义文本。

我遇到的问题

仅当我滚动顶部或底部时,站点才会加载其隐藏窗格内容(CSS 部分),如果我没有滚动,python 将找不到我需要的 CSS 类。

我做过的事情

滚动查找日期

  element = driver.find_element_by_xpath("//div[@class='_1VzZY' and text()='11/23/2020']")
  self.driver.execute_script("return arguments[0].scrollIntoView(true);", element)
  print("Scrolling")

查找并单击标题

    l = driver.find_element_by_xpath("//span[@title='Apple']")
    l.click()

我需要的解决方案

任务 1 我必须先滚动第二个窗格并搜索特定选择器的文本值 (//span[@title='Apple']) 并单击它。

任务 2 现在在第一个窗格中(更靠近它)我应该向上滚动,直到找到一个值为“11/23/2020”的类“._1VzZY”。

任务 1 应该在任务 2 发生之后首先发生。

【问题讨论】:

  • 可以分享一下网址吗?

标签: python selenium selenium-webdriver dom browser-automation


【解决方案1】:
for i in range(45):
    driver.execute_script("arguments[0].scrollBy(0, 500)")
    time.sleep(2)

您可以使用它向下滚动,我假设如果您需要向上滚动,您可以交换 0 和 500。您可以看到它是如何滚动的,并按该数量定义 range(),它被滚动到视觉中.之后它应该是可见的,你可以运行第二个命令

【讨论】:

  • Python 对缩进很敏感。我已经修好了。如果我破坏了逻辑,请随时恢复。
  • 哦谢谢没看到,你是对的。你同意这个解决方案吗?
  • 语法上我希望看​​到你使用WebDriverWait而不是time.sleep()
  • 可以理解,如果这也可以的话,实际上可能会在我自己使用的脚本中改变这一点,因为我是 WebdriverWait 而不是 time.sleep() 的真正粉丝
猜你喜欢
  • 2011-04-18
  • 1970-01-01
  • 2018-10-16
  • 2018-10-11
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
相关资源
最近更新 更多