【问题标题】:Is it possible to inject html into my selenium tests?是否可以将HTML注入我的硒测试?
【发布时间】:2016-02-10 14:03:35
【问题描述】:

假设我们有 WebElement foofoo 有一个疯狂的外观,不断变化的 xpath。硬编码foo 当你不得不经常这样做时真的很烦人。

我刚刚在 Firebug 上发现了 html 编辑,这让我想知道,有没有我可以写 id 值用于我的 Selenium 测试?在任何被测试的 WebElements 中明显缺乏 id 值的情况已经过时了。

提前致谢。

【问题讨论】:

  • @alecxe 这真的不是这个问题的重复。是的,它是关于更改属性,但 OP 正在询问如何避免对长/复杂的 XPath 进行硬编码。更改属性不会解决这个问题,因为您必须使用相同的 XPath 来查找要更改其属性的元素……所以这无济于事。但是.. 答案是除了有开发者插入 ID 等之外没有其他答案,但我假设这不是一个选项。
  • @JeffC 恐怕你是对的。我有点不确定是否要关闭它,但如果我关闭它是错误的,我决定继续等待 OP 回复我。谢谢!

标签: selenium xpath


【解决方案1】:

在 Firebug 或 Chrome devtools 中编辑 HTML 只是暂时的。一旦您关闭浏览器,您的更改就会消失。除了要求您的开发人员将 ID 添加到所需元素之外,您的要求没有真正的解决方案。我假设您不拥有该网站,或者这是不可能的,或者您会提到它。欢迎使用测试自动化,网站创建者在创建网站时不考虑测试自动化... :)

【讨论】:

    【解决方案2】:

    对于问题,是否可以将 html 注入我的 selenium 测试,答案是肯定的。您可以使用JavaScriptExecutor 将 html 注入您的网页。

    ((JavascriptExecutor) driver).executeScript("arguments[0].id = 'abc';", element);
    

    正如 JeffC 所提到的,要注入 id 或任何 HTML,您必须首先识别所需的元素。此外,刷新页面后更改将丢失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 2019-07-18
      • 2018-09-04
      相关资源
      最近更新 更多