java我无法在Selenium中找到下拉列表的xpath
我无法在Selenium中找到/找到下拉列表的xpath,下拉列表是用div标记编写的,悬停时属性(aria activegender)值正在更改。一旦在下拉列表中选择了值,属性(aria Active子孙)值就会消失
有人能帮我找到这个的xpath吗?提前谢谢
HTML格式如下:
<div class="DropdownWidget---dropdown_value DropdownWidget---placeholder"
id="189d67819beda8ebc9b5a2b7554f80f1_value"
role="listbox"
tabindex="0"
aria-controls="189d67819beda8ebc9b5a2b7554f80f1_list"
aria-expanded="false"
aria-activedescendant=""
aria-labelledby="189d67819beda8ebc9b5a2b7554f80f1"
aria-describedby="189d67819beda8ebc9b5a2b7554f80f1_selectedChoice"
aria-required="true">
<!-- react-text: 38 -->- Please Select a Value -<!-- /react-text -->
<span id="189d67819beda8ebc9b5a2b7554f80f1_selectedChoice"
class="DropdownWidget---accessibilityhidden">- Please Select a Value -</span>
</div>
鼠标悬停时该属性的值正在更改,如下所示:
aria-activedescendant=189d67819beda8ebc9b5a2b7554f80f1_list_0
aria-activedescendant=189d67819beda8ebc9b5a2b7554f80f1_list_1
aria-activedescendant=189d67819beda8ebc9b5a2b7554f80f1_list_2
aria-activedescendant=189d67819beda8ebc9b5a2b7554f80f1_list_3
以下是选项的检查代码:
<div class="DropdownWidget---dropdown_value DropdownWidget---placeholder" id="189d67819beda8ebc9b5a2b7554f80f1_value" role="listbox" tabindex="0" aria-controls="189d67819beda8ebc9b5a2b7554f80f1_list" aria-expanded="true" aria-activedescendant="189d67819beda8ebc9b5a2b7554f80f1_list_2"
aria-labelledby="189d67819beda8ebc9b5a2b7554f80f1" aria-describedby="189d67819beda8ebc9b5a2b7554f80f1_selectedChoice" aria-required="true">
<!-- react-text: 38 -->- Please Select a Value -
<!-- /react-text --><span id="189d67819beda8ebc9b5a2b7554f80f1_selectedChoice" class="DropdownWidget---accessibilityhidden">- Please Select a Value -</span></div>
**Class used for dropdown selection**
public class Page2_ProjectType {
WebDriver driver;
public Page2_ProjectType(WebDriver driver) {
this.driver = driver;
}
public void MethodHome_ProjectType() throws InterruptedException {
Thread.sleep(5000);
WebElement Btncreatenew = driver.findElement(By.xpath("//*[@id=\"appian-body\"]/div/div/div/div/div/div[2]/div/div[2]/div/div/div/div/div/div/div[1]/div/div[2]/div/a/img"));
Btncreatenew.click();
Thread.sleep(5000);
WebElement DDprojecttype = driver.findElement(By.id("189d67819beda8ebc9b5a2b7554f80f1_value"));
DDprojecttype.click();
String value = DDprojecttype.getAttribute("aria-activedescendant");
System.out.println(value);
List<WebElement> options = driver.findElements(By.cssSelector("div.DropdownWidget---dropdown_value.DropdownWidget---placeholder>span"));
for(WebElement element : options){
if(element.getText().equals("New Product Introduction")){
element.click();
}
}
}
}
# 1 楼答案
感谢@Cruisepandey和@Andrei Suvorkov,我使用下面的代码在下拉列表中找到并输入选项
# 2 楼答案
试试这个:
而不是:
单击打开下拉列表后,等待元素可单击,然后单击它
# 3 楼答案
css选择器将是:
更新:
下拉列表是使用div和span标记构建的
代码您可以尝试: