无法使用selenium webdriver访问下拉列表的元素
我正在尝试访问下拉列表的元素,html如下所示:无法使用selenium webdriver访问下拉列表的元素,selenium,selenium-webdriver,dropdown,Selenium,Selenium Webdriver,Dropdown,我正在尝试访问下拉列表的元素,html如下所示: 选择您的业务类别。 吸引人之处/要做的事情 银行 酒吧 书店 音乐会场地 食物/杂货 酒店 本地业务 电影院 博物馆/美术馆 户外装备/运动用品 房地产 餐厅/咖啡厅 学校 购物/零售 水疗/美容/个人护理等。 好的,我想我理解你的要求。首先单击选择列表,现在下拉列表将弹出选项集,现在您可以在单击选择列表后立即编写此代码 driver.findElement(By.xpath
-
选择您的业务类别。
-
吸引人之处/要做的事情
-
银行
-
酒吧
-
书店
-
音乐会场地
-
食物/杂货
-
酒店
-
本地业务
-
电影院
-
博物馆/美术馆
-
户外装备/运动用品
-
房地产
-
餐厅/咖啡厅
-
学校
-
购物/零售
-
水疗/美容/个人护理等。
好的,我想我理解你的要求。首先单击选择列表,现在下拉列表将弹出选项集,现在您可以在单击选择列表后立即编写此代码
driver.findElement(By.xpath("//ul[@id='select2-results-3']/li/div/span[normalize-space()='Attractions/Things To Do']")).click();
如果您想更改元素,然后用所需的文本更改文本
景点/要做的事情
,它将适合您 好吧,我想我理解你的要求。首先单击选择列表,现在下拉列表将弹出选项集,现在您可以在单击选择列表后立即编写此代码
driver.findElement(By.xpath("//ul[@id='select2-results-3']/li/div/span[normalize-space()='Attractions/Things To Do']")).click();
如果您想更改元素,然后用所需的文本更改文本
景点/要做的事情
,它将适合您 尝试以下代码以选择所需元素:
driver.findElement(By.id("select2-results-3")).click();
driver.findElement(By.xpath("//ul[@id='select2-results-3']//div[contains(.,'Shopping/Retail')]")).click();
此外,您还可以在all元素中循环,一旦找到,请单击该元素:
List<WebElement> all = driver.findElements(By.cssSelector('#select2-results-3 li .select2-result-label'));
for(int i=0;i<all.size();i++){
if(all.get(i).getText().contains("Shopping/Retail")){
all.get(i).click();
break;
}
}
List all=driver.findElements(通过.cssSelector('select2-results-3li.select2-result-label');
对于(int i=0;i请尝试以下代码以选择所需的元素:
driver.findElement(By.id("select2-results-3")).click();
driver.findElement(By.xpath("//ul[@id='select2-results-3']//div[contains(.,'Shopping/Retail')]")).click();
此外,您还可以在all元素中循环,一旦找到,请单击该元素:
List<WebElement> all = driver.findElements(By.cssSelector('#select2-results-3 li .select2-result-label'));
for(int i=0;i<all.size();i++){
if(all.get(i).getText().contains("Shopping/Retail")){
all.get(i).click();
break;
}
}
List all=driver.findElements(通过.cssSelector('select2-results-3li.select2-result-label');
对于(int i=0;i,根据您共享的HTML和代码试用,在元素上调用click()
,文本为Shopping/Retail,一旦访问下拉列表,您可以使用以下解决方案:
List<WebElement> options = driver.findElements(By.xpath("//ul[@class='select2-results' and @id='select2-results-3']//li[contains(@class,'select2-result-selectable')]/div[@class='select2-result-label'][contains(@id,'select2-result-label-')]"));
for(WebElement option : options) {
if(option.getText().contains("Shopping/Retail")) {
option.click();
break;
}
}
List options=driver.findElements(By.xpath(//ul[@class='select2-results'和@id='select2-results-3']//li[contains(@class='select2-result-selected')]/div[@class='select2-result-label'][contains(@id,'select2-result-label-'))]);
用于(WebElement选项:选项){
if(option.getText()包含(“购物/零售”)){
选项。单击();
打破
}
}
根据您共享的HTML和您的代码试用,在文本为购物/零售的元素上调用单击()
,一旦访问下拉列表,您可以使用以下解决方案:
List<WebElement> options = driver.findElements(By.xpath("//ul[@class='select2-results' and @id='select2-results-3']//li[contains(@class,'select2-result-selectable')]/div[@class='select2-result-label'][contains(@id,'select2-result-label-')]"));
for(WebElement option : options) {
if(option.getText().contains("Shopping/Retail")) {
option.click();
break;
}
}
List options=driver.findElements(By.xpath(//ul[@class='select2-results'和@id='select2-results-3']//li[contains(@class='select2-result-selected')]/div[@class='select2-result-label'][contains(@id,'select2-result-label-'))]);
用于(WebElement选项:选项){
if(option.getText()包含(“购物/零售”)){
选项。单击();
打破
}
}
您可以使用以下方法从下拉列表中选择一个值:
1) 通过使用sendkeys()方法直接传递值“Shopping/Retail”
2) 如果上述操作不起作用,请使用选择类:
首先检查下拉框并将其存储在webElement中:
WebElement business=driver.findElementby*("");
Select dropDown=new Select(business);
然后可以使用三种方法:
dd.selectByIndex(14); //seems to be the 15th value in drop down
dd.selectByText("Shopping/Retail");
3) .使用actions类
如果这些问题没有解决,请发布您的查询。您可以使用以下方法从下拉列表中选择一个值:
1) 通过使用sendkeys()方法直接传递值“Shopping/Retail”
2) 如果上述操作不起作用,请使用选择类:
首先检查下拉框并将其存储在webElement中:
WebElement business=driver.findElementby*("");
Select dropDown=new Select(business);
然后可以使用三种方法:
dd.selectByIndex(14); //seems to be the 15th value in drop down
dd.selectByText("Shopping/Retail");
3) .使用actions类
如果这些问题没有解决,请发布您的查询。HTML在哪里?您是如何单击下拉列表的?我看不出有什么关系。只有当您单击下拉列表时,该代码才会起作用。如果你有这个ID类别
,那么使用xpath有什么意义?更新了问题。我复制了你的HTML代码并粘贴在这里,但它没有创建任何选择列表,而是创建了一个以纯文本显示的选项的HTML列表。可以吗