我正在使用 Selenium C# 自动化一个网站。我在尝试使用 CSS 选择器单击元素时收到 NoSuchElementException。但是当我使用 xpath 时一切正常。谁能帮助我理解为什么我在使用 CSS 选择器时遇到这个问题。
使用的 Xpath 值。
//*[@id="primary-navigation"]/ul/li[2]/a
使用的 CSS 选择器值。
#primary-navigation > ul > li:nth-child(2) > a
最佳答案
xpaths li[2]
为您提供第二个 li 元素
css li:nth-child(2)
为您提供 li 元素,它是其父元素的第二个子元素
例如
<ul>
<p> something </p>
<li> this will be returned </li>
</ul>
此处 xpath li[2]
不会返回任何内容(或错误/异常),因为只有一个 li 元素
BUT css li:nth-child(2)
将返回 li 元素,因为它是父 ul 的第二个子元素
所以很可能选择器工作正常,你只是不能“直接”在 xpath 和 css 选择器之间“转换”
关于css - Selenium Webdriver C#::CSS 选择器在 Internet Explorer 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33126564/