无法自动下拉,因为选择一个值时会自动选择,因此第二个值不可见
not able to automate drop down as while selecting one value gets auto picked,so second one is not visible
我正在尝试自动执行以下网站下拉菜单:
在城市部分,我们有班加罗尔和钦奈,假设班加罗尔被自动选择,所以运行下面的代码失败了:
WebElement element=driver.findElement(By.xpath("//select[@class='city-dropdown-search form-city hide select2-offscreen']"));
Select se=new Select(element);
se.selectByIndex(2);
它无法识别第二个城市,请帮助我我在这里做错了什么。
html标签如下:
<select id="combobox2" class="city-dropdown-search form-city hide select2- offscreen" name="city" tabindex="-1">
<option value="Chennai">Chennai</option>
<option selected="" value="Bangalore">Bangalore</option>
</select>
xpath 有问题还是我在这里遗漏了什么
您可以在 xpath 中使用 text()
属性 到 select text() 的 'Chennai' 选项,如下所示:
//a/span[text() = 'Chennai']
//click on the drop down
WebElement dropDown = driver.findElement(By.xpath("//*[@id='s2id_combobox2']/a/span[@class='select2-arrow']"));
dropDown.click();
//Select the dropdown value
WebElement select = driver.findElement(By.xpath("//a/span[text() = 'Chennai']"));
select.click();
您实际上可以使用 sendKeys()
输入如下内容
WebElement toElement = driver.findElement(By.id("s2id_combobox2"));
toElement.click();
driver.findElement(By.id("select2-drop")).sendKeys("Bangalore");
如果你有更多的城市,这里你可以通过改变sendKeys()
中的值
@Arun Gupta
为了使您的代码通用,您可以执行以下操作而不是对城市名称进行硬编码
创建一个城市名称数组,将其传递给 cityName 变量
将城市名称存储在 excel 文件或文本文件中,读取每个城市并将其传递给 cityName 变量
示例 1
String[] cityName = {"bangalore", "chennai", "pune"};
for(String name : cityName) {
WebElement toElement = driver.findElement(By.id("s2id_combobox2"));
toElement.click();
driver.findElement(By.id("select2-drop")).sendKeys(cityName);
}
希望对您有所帮助
我正在尝试自动执行以下网站下拉菜单:
在城市部分,我们有班加罗尔和钦奈,假设班加罗尔被自动选择,所以运行下面的代码失败了:
WebElement element=driver.findElement(By.xpath("//select[@class='city-dropdown-search form-city hide select2-offscreen']"));
Select se=new Select(element);
se.selectByIndex(2);
它无法识别第二个城市,请帮助我我在这里做错了什么。
html标签如下:
<select id="combobox2" class="city-dropdown-search form-city hide select2- offscreen" name="city" tabindex="-1">
<option value="Chennai">Chennai</option>
<option selected="" value="Bangalore">Bangalore</option>
</select>
xpath 有问题还是我在这里遗漏了什么
您可以在 xpath 中使用 text()
属性 到 select text() 的 'Chennai' 选项,如下所示:
//a/span[text() = 'Chennai']
//click on the drop down
WebElement dropDown = driver.findElement(By.xpath("//*[@id='s2id_combobox2']/a/span[@class='select2-arrow']"));
dropDown.click();
//Select the dropdown value
WebElement select = driver.findElement(By.xpath("//a/span[text() = 'Chennai']"));
select.click();
您实际上可以使用 sendKeys()
WebElement toElement = driver.findElement(By.id("s2id_combobox2"));
toElement.click();
driver.findElement(By.id("select2-drop")).sendKeys("Bangalore");
如果你有更多的城市,这里你可以通过改变sendKeys()
@Arun Gupta 为了使您的代码通用,您可以执行以下操作而不是对城市名称进行硬编码
创建一个城市名称数组,将其传递给 cityName 变量
将城市名称存储在 excel 文件或文本文件中,读取每个城市并将其传递给 cityName 变量
示例 1
String[] cityName = {"bangalore", "chennai", "pune"};
for(String name : cityName) {
WebElement toElement = driver.findElement(By.id("s2id_combobox2"));
toElement.click();
driver.findElement(By.id("select2-drop")).sendKeys(cityName);
}
希望对您有所帮助