[英]traverse nested tagnames - selenium automation using webDriver
Friends, 朋友们
I have a situation where I need to click on a dropdown list and select any value displayed. 我遇到一种情况,我需要单击一个下拉列表并选择显示的任何值。 The dropdown is identified by the following piece of code 下拉列表由以下代码标识
<select id="order_unit_line_rate_806782_is_addenda_enabled" class="selects_for_487886" onchange="select_addendum(806782, this);dateShowMemory(this.options[this.selectedIndex].value, '806782');" uniqueattr="Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / drop down" name="order_unit_line_rate[806782][is_addenda_enabled]">
<option value="0" uniqueattr="Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / Fee"> Fee </option>
<option value="1" uniqueattr="Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / See Attached Addendum"> See Attached Addendum </option>
where the "select" and "option" tags are in a nested hierarchy . 其中“ select”和“ option”标签位于嵌套层次结构中 。 i am able to click on the dropdown list and display the items by doing this 我可以单击下拉列表并通过执行此操作显示项目
List<WebElement> dropDownLists = driver.findElements(By.tagName("select"));
for (WebElement l : dropDownLists) {
if (l.getAttribute("uniqueattr").equalsIgnoreCase("Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / drop down")) {
l.click();
} // end if
} // end for
But I am unable to traverse further to click on the options in the dropdown :(. 但是我无法进一步遍历以单击下拉菜单中的选项:(。
This is what i tried but which is not working 这是我尝试过的,但是没有用
List<WebElement> newList = driver.findElements(By.tagName("option"));
for (WebElement ll : newList) {
if (ll.getAttribute("uniqueattr").equalsIgnoreCase("Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / Straight Line Commitment")) {
ll.click();
}
}
Retrieve the label, index or value of the option you want to click like this 像这样检索要单击的选项的标签,索引或值
List<WebElement> dropDownLists = driver.findElements(By.tagName("select"));
for (WebElement l : dropDownLists)
{
List<WebElement> newList = l.findElements(By.tagName("option"));
for (WebElement ll : newList)
{
if (ll.getAttribute("uniqueattr").equalsIgnoreCase("Dynamic Site Accelerator / Dynamic Site Accelerator / Additional Usage Commitment / Straight Line Commitment"))
{
SelectElement select = new SelectElement(l);
select.SelectByValue(ll.getAttribute("value"));
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.