有人能帮我找到这个的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();
}
}
}
}
感谢@Cruisepandey和@Andrei Suvolkov,我使用下面的代码在下拉列表中找到并输入选项。
WebElement projectType = driver.findElement(By.id("_value"));
projectType.sendKeys("New Product Introduction");
projectType.sendKeys(Keys.ENTER);
试试这个:
...
WebDriverWait wait = new WebDriverWait(driver,10);
WebElement option = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(., 'New Product Introduction')]")));
option.click();
...
而不是:
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();
}
}
单击打开下拉列表后,等待元素可单击,然后单击它。
css选择器应为:
div.DropdownWidget---dropdown_value.DropdownWidget---placeholder>span.DropdownWidget---accessibilityhidden
更新:
下拉列表是使用div和span标记构建的。
您可以尝试的代码:
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();
}
}
下面是正确的错误消息:Traceback(最近的调用):文件“C:/users\shishir sinha/pycharmprojects/australia/australia.py”,第33行,in driver.find_element_by_xpath(“.//[@id='ui-menu-0-1']”)。单击()文件“C:\users\shishir sinha\appdata\local
我试图从下拉菜单中选择一个选项,然后单击“搜索”,但我无法获得“选择”标签。 我抓取的HTML如下: 我想选择的选项是: 我使用的代码如下: 所以,我试图以不同的方式获得“选择”标签,我得到了不同的问题。 例如: 第一次尝试) 我得到: 第二次尝试) 我得到: 第三次尝试) 我得到一个空列表: 第 4 次尝试) 我得到一个空列表: 第5次尝试) 我得到: 有人知道如何解决这个问题吗?提前感谢!
我想从下拉列表中选择值。 目前我可以点击下拉列表,但无法从下拉列表中选择值。下面是我用来从下拉列表中选择值的代码。 我在框架中工作,你能告诉我相应的代码吗。请检查我正在使用的以下代码。 超文本标记语言
我是硒的新手,我试图从下拉列表中选择一个选项。下拉列表的超文本标记语言如下: WebElement的是: 我已经尝试了几乎所有的方法,我可以在互联网上找到,但没有任何效果。我试图使用类,包装了,但它抛出了一个异常。 我试图丢失列表中的所有选项,但在这种情况下得到了异常应该有标签,但它有。我需要使用作为findelements的标识符。 请帮我解决这个问题。
我正在尝试自动选择硒离子中的下拉列表,但我无法使其正常工作。 基本上,我在菜单项上记录了一次单击,这会显示下拉菜单,但每当我在其中一个选项上使用单击命令时,它都会关闭菜单,而不会选择新选项。我也尝试了select命令,但我一直得到“指定元素不是select” 任何想法?
Html代码: 我使用Selenium Webdriver(带有java)中的以下代码(POM)来选择: 请提出一些解决办法。