Eve*_*Eve 13 html forms nested elements selenium-webdriver
我想使用Selenium提交一个包含多个元素的表单.例如:
<form name="something">
<input type="text" name="a">Username</input>
<input type="password" name="b">password</input>
<select name="c" id="c">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="submit" name="submit">submit</input>
</form>
Run Code Online (Sandbox Code Playgroud)
如果我使用find.Element(By.name)来查找表单元素,我怎样才能获得它的子元素a,b和c?并将值输入这三个元素然后提交表单?
另一个类似的问题是:如果我得到元素a,如何获取元素b并且c是相同的形式并首先填充(或选择)值,然后提交表单?
提前致谢!
Fai*_*aiz 18
您可以使用xpath来获取特定元素的所有直接子元素parent/*.
如果您已经form使用了元素findElement(),如下所示:
WebElement formElement = driver.findElement(By.name("something"));
List<WebElement> allFormChildElements = formElement.findElements(By.xpath("*"));
Run Code Online (Sandbox Code Playgroud)
或直接使用:
List<WebElement> allFormChildElements = driver.findElements(By.xpath("//form[@name='something']/*"));
Run Code Online (Sandbox Code Playgroud)
然后查看每个元素的标记和类型以指定其值:
for (WebElement item : allFormChildElements)
{
if (item.getTagName().equals("input"))
{
switch (item.getAttribute("type"))
{
case "text":
//specify text value
break;
case "checkbox":
//check or uncheck
break;
//and so on
}
}
else if (item.getTagName().equals("select"))
{
//select an item from the select list
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78278 次 |
| 最近记录: |