【问题标题】:Check if text exists on a page, but read the text from a variable (Selenium)检查页面上是否存在文本,但从变量中读取文本(Selenium)
【发布时间】:2021-04-27 20:21:56
【问题描述】:

我正在尝试使用 Selenium 在页面上查找匹配的文本,但我不确定如何让它从变量中读取输入字符串。 例如:

video_title = 'Michael Jackson - Thriller'
driver.find_elements_by_xpath("//*[contains(text(), video_title)]")

上面的代码没有给我很好的结果,因为它可能在文学中搜索“video_title”,而不是里面的字符串。 我在上面的代码中省略了围绕 video_title 的标准引号,希望 Selenium 将其视为一个变量,但它似乎不起作用。

这可能吗?使用 Selenium 或其他方式? 谢谢!

【问题讨论】:

  • 可能与这个问题类似。 stackoverflow.com/questions/48139676/…
  • 如果你不知道是否可以运行这段代码,你会看到结果
  • 是的,对不起,忘了说我正在使用代码,但它不起作用我想要它。它搜索“video_title”文学,而不是里面的字符串。
  • 搜索“python 字符串格式”以获取如何从变量构造字符串值的示例。

标签: python selenium web text find


【解决方案1】:

您需要将视频标题作为变量而不是文本传递,如下面的代码所示:

video_title = 'Michael Jackson - Thriller'
driver.find_elements_by_xpath("//*[contains(text(), '" + video_title + "')]")

注意video_title 周围的额外单引号,这是必需的,因为它是一个字符串。在运行时,这将导致以下 XPath 表达式:

//*[contains(text(), 'Michael Jackson - Thriller')]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2019-04-08
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    相关资源
    最近更新 更多