gpt4 book ai didi

css - 嵌套的 findElement,其中第一个是 xpath,第二个是 css,没有按预期工作

转载 作者:行者123 更新时间:2023-11-28 17:28:09 26 4
gpt4 key购买 nike

这是我的 html 源代码的样子。

      <tr>
<td class='first'>User Name</td>
<td class='last'>
<input/>
</td>
</tr>

现在,当我试图定位输入标签时,我错误地编写了我的代码

driver.findElement(By.xpath("//tr/td[@class='last']")).findElement(By.cssSelector("td.last>input"))

它成功定位了输入标签,这让我有点困惑,因为在我的第一个 findElement 中,我已经到达了 td 标签,现在在第二个 findElement 中,我从同一个 td 标签开始。我认为它应该抛出 NoSuchElement 异常。我再次尝试使用 By 方法的不同组合,但它未能找到并触发 NoSuchElement 异常。即使我像下面那样尝试过,这里也触发了 NoSuchElement 异常:

driver.findElement(By.xpath("//tr/td[@class='last']")).findElement(By.cssSelector("td.last"))

在第一种成功定位输入元素的情况下,任何人都可以帮助我解决这种异常行为的原因。

最佳答案

您的代码基本上是正确的。而且,这确实是一种正常的行为。

 driver.findElement(By.xpath("//tr/td[@class='last']")).findElement(By.cssSelector("td.last>input"))

第一个“findElement”部分定位了类为“last”的td 类。现在,第二个“findElement”必须定位位于第一个“findElement”部分的元素下方的元素。而且,这正是它的作用。 cssselector 指向 td class with class 'last' 下的 "input" 标签。从哪里开始并不重要。事实上,重要的是定位元素只是“输入”

希望这对您有所帮助!

关于css - 嵌套的 findElement,其中第一个是 xpath,第二个是 css,没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26728305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com