selenium 页面的 Css 选择器

标签 css selenium-webdriver css-selectors

我有以下内容

<div class="startpack">
<div class="test-class">
    <div id="login">
        <div id="frag">
            <h3>blah blah blah</h3>
        </div>
        <div id="testfrag">
            <form class="loginform">
                <input class="button" type="submit" value="log in" />
            </form>
        </div>
    </div>
</div>  

<div class="real-class">
    <div id="login">
        <div id="frag">
            <h3>blah blah blah</h3>
        </div>
        <div id="testfrag">
            <form class="loginform">
                <input class="button" type="submit" value="log in" />
            </form>
        </div>
    </div>
</div>  

<div class="noshow-class">
    <div id="login">
        <div id="frag">
            <h3>blah blah blah</h3>
        </div>
        <div id="testfrag">
            <form class="loginform">
                <input class="button" type="submit" value="log in" />
            </form>
        </div>
    </div>
</div>  
</div>

现在,如果我想让我的 selenium 代码单击 <div class="real-class"> 中的提交按钮我要为 cssSelector 使用什么?

我试过了

driver.findElementBycssSelector(".startpack>#real-class>input[class=\"button\"]").click()

但这没有用。我想在不做 div[0] 或 div[1] 等的情况下尽可能地推广它。这样,如果我的 DOM 结构在未来发生变化,我真的不必担心修改定位器。

最佳答案

你已经在 real-class 上使用了 id 选择器 # 但实际上你只有一个类名为 .real-class 的元素.

您可以更改您的 HTML 以匹配此选择器或只使用类选择器来代替 .startpack>.real-class input[class="button"]

您还以错误的方式使用了直接子组合器 >。 ( http://www.w3.org/TR/css3-selectors/#child-combinators )

#real-class>input.button 仅在您的 html 如下所示时为真:

<div id="real-class">
  <input class="button" value="test" type="submit" />
</div>

在您的示例中,按钮不是真实类 的直接子级

关于selenium 页面的 Css 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25062702/

相关文章:

jquery - 使用jquery在排序中隐藏所有内容

Python(PyCharm) Selenium 跳过行代码

java - 在标签后的文本框中输入文本

css - jmeter 在提供正确的 css 选择器后出错

selenium-webdriver - 使用 Selenium 驱动程序的 Mocha 超时

CSS 选择器不适用于 IE7 和 IE8

css - Magento 2 主页问题 | CSS 和布局不同于任何其他页面

html - 水平滚动条和宽度自动

css - 高度为 100% 的 DIV 会截断滚动条

java - 无法定位使用 Selenium WebDriver (Java) 实现为 Span 的元素