css - Selenium Webdriver C#::CSS 选择器在 Internet Explorer 中无法正常工作

标签 css selenium xpath selenium-webdriver css-selectors

我正在使用 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/

相关文章:

sql-server - 在 sql server 的 xpath 中使用变量

css - 页眉未延伸到浏览器的顶部/侧边。不能使用绝对位置

css - 工具栏在 Linux Firefox 中超出页面,而不是在 Windows 上

CSS 过渡语法

java - 脚本应该等到浏览器手动关闭

java - 根据 xpath 元素中其他属性的条件获取属性值

javascript - 如何实现标签不可知风格的组件?

selenium - 如何处理 Selenium 中的 salesforce 悬停

python - 错误未绑定(bind)方法 get() 必须使用 phantomJs 通过 WebDriver 调用

python - 使用 lxml/xpath 解析 html 元素