如何使用Selenium Webdriver选择嵌套的css元素?

时间:2015-12-18 00:45:39

标签: html css selenium

对于以下html代码:

    <div class="r signbox">
    <form method="POST" id="loginByEmail">
        <dl>
            <dt>Seller Login</dt>
            <dd>
                <input type="text" class="text" name="email" placeholder="Email Address" value="">
                <div class="error"></div>

我如何选择&#34;电子邮件&#34;属性名称?原因是因为该网站使用了两个具有相同名称的表格框,因此我想特别针对该类中的一个&#34; r signbox&#34;。感谢您的帮助,Selenium Webdriver全新。

2 个答案:

答案 0 :(得分:0)

首先在选择器中选择“r signbox”类的所有内容。

选择所需信息后,您可以使用同一代码块中序列中的新选择器获取反叛信息。正如您所问,使用attr名称将是:

  

$(“。r.signbox [class ='email']”);

答案 1 :(得分:0)

同名是指 id 属性?

如果是的话,这很奇怪。

如果没有,我建议您首先映射表单元素并在输入之后。这样做,如果在 div.r.signbox 表单之间添加另一个表单,您将阻止测试中断。#loginByEmail

无论如何,@ Striter awnser是不正确的,因为他在电子邮件作为班级寻找任何东西。

提示是使用标签名称更精确:

div.r.signbox input[name='email']

这会查找包含 r signbox 的div,并在此元素(请参阅空格?)中查找具有属性 name 估价为电子邮件

即使有人在 dd 之间添加了一个 div ,其名称属性为电子邮件 dt ,你的定位器工作正常。

以下是CSS选择器的一个很好的参考:https://saucelabs.com/selenium/css-selectors

如果您喜欢书籍, Selenium Testing Tools Cookbook 的第一章将为您提供良好的知识:http://www.amazon.com/Selenium-Testing-Cookbook-Gundecha-Unmesh/dp/1849515743