【问题标题】:Selenium WebDriver dom locators workaroundSelenium WebDriver dom 定位器解决方法
【发布时间】:2016-03-30 12:03:41
【问题描述】:

在将测试用例从 Selenium IDE 导出到 java/junit/WebDriver 时,有没有办法为 Dom Locators 做一些解决方法?

这些尚未实施(大约几年?)

我有一个错误

// ERROR: Caught exception [Error: Dom locators are not implemented yet!]
// ERROR: Caught exception [Error: Dom locators are not implemented yet!]

我的例子 dom 定位器

document.findflight.servClass[2] 

<input type="radio" value="Coach" name="servClass" checked="">
<font face="Arial, Helvetica, sans-serif">
    Economy class
    <br>
    <input type="radio" value="Business" name="servClass">
    Business class
    <br>
    <input type="radio" value="First" name="servClass">
    First class
</font>

【问题讨论】:

    标签: java selenium selenium-webdriver selenium-ide


    【解决方案1】:

    您是对的,即使对于 Selenium WebDriver(例如),仍然没有直接导出到“已实现的定位器”。由于这个事实,您可以通过手动选择一些直接定位器策略来解决此问题。只需在 Selenium 定位器文档here 中查看所有可能的内容。希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      在将测试用例从 Selenium IDE 导出到 java/junit/WebDriver 时,有没有办法为 Dom Locators 做一些解决方法?

      不,没有自动转换。您必须使用 xpath 表达式手动完成:

      //*[@name='findflight']/*[@name='servClass'][2]
      

      或 CSS 选择器:

      [name=findflight] > [name=servClass] > *:nth-child(2)
      

      这些尚未实施(大约几年?)

      由于 DOM 定位器不可靠,因此实现该功能毫无意义。 DOM 定位器是相对于文档的,因此页面结构的任何更改都会破坏测试。

      【讨论】:

        【解决方案3】:

        实际上,由于这篇文章,我找到了自己的解决方案: http://hiromia.blogspot.com/2015/10/how-to-handle-dom-in-selenium-webdriver.html

        我用过:

        (WebElement) ((JavascriptExecutor) driver).executeScript("return " + el[0]);
        

        【讨论】:

        • 从 IDE ro Java-webDriver 测试用例导出时可以使用这个吗?我无法做到这一点。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-15
        • 2016-12-10
        • 2018-09-30
        相关资源
        最近更新 更多