【问题标题】:How do I find an exact text to click using Selenium?如何使用 Selenium 找到要单击的确切文本?
【发布时间】:2021-06-04 15:55:55
【问题描述】:

我正在尝试使用 Selenium/Chrome 网络驱动程序编写一个脚本,该脚本将根据标题找到上传的视频以进行点击。标题基于一天中的时间/日期。 这是我目前所拥有的(在自动登录页面和视频标题设置后),

web = webdriver.Chrome()
web.get(...website...)

videoTitle = "June 03, 2021 2nd Service"

time.sleep(5) #allow page to load all elements

lastUpload = web.find_element_by_xpath(".//*[text() = 'videoTitle']").text
print(lastUpload)
lastUpload.click()

脚本完成后,我会得到页面中的所有文本,而不仅仅是视频标题。我该如何改变呢?我怎样才能得到让我点击的按钮?最后一行失败。

这是我在该特定按钮的页面上看到的,

当我运行代码时,lastUpload 会打印页面中所有不可点击的文本。 从我在这里搜索其他帖子所看到的情况来看,我似乎需要从搜索文本中删除“包含”。我这样做了,但是我得到了相同的结果。我需要更具体吗?

最后,每次页面刷新时出现的所有 ember### div 都会生成新的数字,所以我不能用它来简单地单击最后一项。

提前致谢!非常感谢。

【问题讨论】:

  • 可以分享网址吗?

标签: python python-3.x selenium selenium-webdriver


【解决方案1】:

看看这是否有效:

driver.find_element_by_xpath("//div[text()='June 03, 2021 2nd Service']//ancestor::a[@class='ember-view']").click()

【讨论】:

  • 这成功了!但是,我需要在 xpath 中使用一个变量,这是一个快速的 Google 搜索。我的工作代码是:web.find_element_by_xpath("//div[text()='"+videoTitle+"']//ancestor::a[@class='ember-view']").click()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-13
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2020-09-24
  • 2018-12-15
相关资源
最近更新 更多