【发布时间】:2015-12-01 05:02:47
【问题描述】:
非常简单的问题,基本上我是在点击另一个链接后尝试获取 li 元素的文本。该链接将导致 li 命令发生更改。每当我尝试获取文本时,它都会在订单更改之前返回文本。订单从点击链接更改后如何获取 li 文本?该链接不会重新加载页面本身。
这是我用来获取元素的内容:
driver.findElement(By.cssSelector("li[id^='coupon_']:nth-of-type(1) p.brand")).getText();
更改本身将来自:
<div id="id1">
<ul class="pods">
<li rel="" title="some text" id="coupon_1" data-pos="1">
...
<p class="brand">brand1</p>
...
</li>
</ul>
</div>
到:
<div id="id1">
<ul class="pods">
<li rel="" title="some text" id="coupon_5" data-pos="1">
...
<p class="brand">brand5</p>
...
</li>
</ul>
</div>
我遇到过类似的情况,我会使用 wait.until 来显示发生变化的元素,然后获取它,但在这种情况下,li 元素已经存在,但只是在单击链接后发生了变化。如何获取新的元素文本?谢谢!
【问题讨论】:
-
您知道点击链接后到底发生了什么变化吗?您能否以 HTML 的形式公开它:提供之前和之后的 HTML。
-
它会从:
<div><ul class="blah"><li id="coupon_1"><p class="brand">brand1</p>...</li></ul></div>变为:<div><ul class="blah"><li id="coupon_5"><p class="brand">brand5</p>...</li></ul></div>虽然当我点击链接时我不会提前知道 ID -
请编辑问题并将此信息添加到其中。
-
所以,如果我错了,请纠正我:基本上,如果你点击链接,优惠券的数量会改变?..
-
不是数量,只是内容变化,比如id、品牌名称等。其他都一样
标签: java selenium css-selectors webdriver