如何找到元素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"))
}
也尝试使用 CSS 选择器和 XPath,但它仍然说没有找到,因为相同的类名,它没有找到 input class
。
在 for
循环下我试着做
formrow.getText()
它显示了所有的文本结果但它没有使用类名?我卡住了,请帮忙
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>
最佳答案
因为您有以下代码:
<div class="formfield">
<label>
<input class="Test_type required" type="radio"/>
YouareTest
</label>
</div>
我们需要以某种方式概述输入元素。
所以我建议使用 CSS 选择器来定位这个元素,因为这是最快的方法。
所以 'input'
标签具有以下类属性= "Test_type required"
,这意味着该元素应用了 2 个 CSS 类:
- 测试类型
需要 当使用CSS选择器元素定位时,一个类属性为y的元素B将被标记为
B.y
,一个具有2个类属性y和z的元素将被标记为B.y.z
。 所以就我们的任务而言,它看起来像input.Test_type.required
但您也可以注意到您有另一个元素 - div,其父元素为类属性 =formfield
。
因此,在结构中使用 CSS 将子元素定位到父元素:
<parent class="zz">
<child 1>
<child2> abaracadabra</child>
</child 1>
</parent>
parent.zz child2 => 这样
所以我们的选择器的第二部分是这样的:
div.formfield
因为它是与输入有关的父选择器。
所以解决方案组合=
WebElement inputt=driver.findElement(By.cssSelector('div.formfield input.Test_type.required'));
请试试这个,然后判断它是否适合你。
关于selenium - 我正在尝试 Selenium Webdriver 按类名查找输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25243352/