【问题标题】:Why selenium can't find some text on page为什么硒在页面上找不到某些文本
【发布时间】:2021-01-15 23:42:22
【问题描述】:

我有一些页面和“树形菜单”。当我想打开 tree_menu 时,我需要点击按钮。之后,我做了一些步骤并点击标题,例如,我点击“19,20”,点击“may”之后,点击“2”并在页面顶部(我选择这个tree_menu)我有一个按钮/链接。此元素中的文本有 2 个空格(不是一个):

"19,20 > may > 2"

但在显示时我想我看到的是 1 个空格,但标签值是 2。而且这个“>”是文本,但我不知道它是如何理解和看到 selenium 的。

所以,在我调用我的函数搜索此文本后:

    def isText(self, text):
        try:
            element = self.driver.find_element(By.XPATH, "//*[text()[contains(., \"" + text + "\")]]")
            return True
        except:
            return False

所以,但是 selenium 找不到这个文本。它只能找到“19,20”,但空格或下一个文本 - 没有。 我打开了网页代码,但我没有看到新标签或其他东西。

但是我尝试找到这个按钮/链接之类的元素并检查该文本并且它有效。 此项目与 dojo 一起使用,但我无法更改任何内容。

请问您能帮我解决这个问题吗?

TY! 祝你有美好的一天!

【问题讨论】:

  • 元素的html标签是什么?

标签: python html selenium testing xpath


【解决方案1】:

我并没有完全了解您的意图,但如果您想找到按钮并使用 selenium 进行单击,请按照格式操作。

element = self.driver.find_element(By.XPATH," COPY FULL XPATH").clik()

element = self.driver.find_element(By.XPATH," COPY FULL XPATH")
time.sleep(5)
element.click()

【讨论】:

  • 我实际上使用了这段代码,但是,对不起,这不是我的问题。
【解决方案2】:

只需找到包含该文本的标签。

element = self.driver.find_element(By.XPATH,  "//*[contains(text(), '{}')]".format(text))

【讨论】:

  • 这并没有解决我的问题。我知道这段代码,但它没有用。这很奇怪。
  • 我的问题:selenium 在 XPath 中看不到文本,只是其中的一部分。如果我找到标签bi ID并检查文本,它就会起作用。
猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
相关资源
最近更新 更多