如何找到元素input class="Test_type"?我顺利过关id=Test1但没找到元素input class="Test_type"
我试过了:
WebElement mainform = driver.findElement(By.className("mainform"));
List<WebElement> postadchildone2 = mainform.findElements(By.className("formrow"))
for(WebElement formrow: postadchildone2)
{
WebElement formfield = formrow.findElement(By.className("formfield"));
WebElement inputclass = formfield.findElement(By.className("Test_type"))
}
Run Code Online (Sandbox Code Playgroud)
还尝试使用CSS选择器和XPath,但是它仍然没有找到,因为它没有找到相同的类名input class.
在for循环下我试着做
formrow.getText()
Run Code Online (Sandbox Code Playgroud)
它显示所有文本结果,但它没有取类名?我被困了请求帮助
HTML:
<div class="mainform">
<div class="formrow">
<div class="formrow">
<div class="formrow">
<div class="formfield">
<div id="Test1" class="city_select">
<div class="blank1"/>
<div class="formrow " style="margin-left:10px;">
<div class="formrow">
<div class="formlabel">
<strong>You Are</strong>
</div>
<div class="formfield">
<label>
<input class="Test_type required" type="radio"/>
YouareTest
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
因为你有以下代码:
<div class="formfield">
<label>
<input class="Test_type required" type="radio"/>
YouareTest
</label>
</div>
Run Code Online (Sandbox Code Playgroud)
我们需要以某种方式概述输入元素.所以我建议使用CSS选择器找到这个元素,因为这是最快的方法.所以'input'tag有以下class attribute = "Test_type required",这意味着对这个元素应用2个CSS类:
当使用CSS选择器元素定位时,具有类属性y的元素B将被标记为 B.y,具有2个类属性y和z的元素将被标记为B.y.z.所以就我们的任务来说,它看起来像
input.Test_type.required
Run Code Online (Sandbox Code Playgroud)但是你也可以注意到你有另一个元素 - div with class attribute = formfieldas parent element.因此,在结构中使用CSS将子元素定位到父元素,如:
<parent class="zz">
<child 1>
<child2> abaracadabra</child>
</child 1>
</parent>
Run Code Online (Sandbox Code Playgroud)
parent.zz child2 =>这样
所以我们的选择器的第二部分就像:
div.formfield因为它是与输入相关的父选择器.所以解决方案组合=
WebElement inputt=driver.findElement(By.cssSelector('div.formfield input.Test_type.required'));
Run Code Online (Sandbox Code Playgroud)
请尝试这个,并告诉它是否适合您.
| 归档时间: |
|
| 查看次数: |
26141 次 |
| 最近记录: |