java - 如何定位/查找每次刷新时 ID 和 xpath 发生变化的元素 - Selenium WebDriver Java

标签 java selenium xpath

我正在使用 java 开发 selenium webdriver,但我遇到了一个问题。我在页面上有一个字段,每次加载该页面时其 id 和 xpath 都会更改。就像,当我手动打开那个页面时,我可以看到一些 id 和 xpath,但是当我的测试运行时,id、xpath 已经改变了。 例子,

.//*[@id='dp1445259656810']
.//*[@id='dp1445260051638']
.//*[@id='dp1445260078674']
.//*[@id='dp1445260154173']

这些是我每次刷新页面时创建的 xpath。我如何在运行测试期间定位/找到这样的元素。任何帮助将不胜感激。

下面是该字段的 HTML 代码。

<div class="form-group event-date">
    <div class="input-group">
        <input id="dp1445260154173" class="form-control ng-pristine ng-
        untouched ng-valid ng-isolate-scope hasDatepicker" 
        enter-action="datePickerEnter(event)" allow-empty=""
        has-datepicker="" ng-model="eventSeries.newEvent.date" 
        placeholder="Event Date"/>

        <span class="input-group-addon">
            <i class="fa fa-calendar"/>
        </span>
    </div>
</div>

最佳答案

通常当 ID 或 Class 属性是动态的时,您需要使用:其他属性/通过它们对静态标签的依赖来查找它们。

这是在 Gmail 中查找“撰写”按钮的示例。它有: - 动态ID - 动态类 - 一个静态唯一属性

这是 HTML 代码:

<div class="T-I J-J5-Ji T-I-KE L3" tabindex="0" role="button" style="-moz-user-select: none;" gh="cm">COMPOSE</div>

所以我的 xpath 是:

//div[@gh='cm']

或者假设您正在 Gmail 上寻找“发送消息”按钮。它有: - 动态ID - 动态类 - 一个静态唯一属性

HTML代码:

<div id=":ly" class="T-I J-J5-Ji aoO T-I-atl L3" tabindex="1" role="button" style="-moz-user-select: none;" data-tooltip="Send ‪(Ctrl-Enter)‬" aria-label="Send ‪(Ctrl-Enter)‬" data-tooltip-delay="800">Send</div>

这个例子使用了 CSS 选择器:

[aria-label*='Enter)']

这里的规则是,当某些东西是动态的时,通过使用一些静态的东西作为引用来寻找它。

在你的情况下它将是:

//div[@class="form-group event-date"]/input

如果您的 div 类不是动态的,则有效。

关于java - 如何定位/查找每次刷新时 ID 和 xpath 发生变化的元素 - Selenium WebDriver Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33215336/

相关文章:

java - selenium-chromedriver-java WebDriverException

java - 如何从 Controller 在 JavaFX 中设置键盘快捷键

java - 仅比较日期数据类型的 'Minute' 部分的 Hibernate Criteria

java - 上限泛型 VS 父类(super class)作为方法参数?

java - PDFBox IOException : End of File, 预期行

使用 Selenium 的 Java 和 Tor 浏览器

regex - 为什么在我的页面上打印Doctype?

python-2.7 - Selenium XPATH 已找到子 div 标签,如何转到包含文本参数的父标签

xml - 谷歌网络工具包 (GWT) + XPath

xpath - Xpath解析样式标签中的背景图片网址