如何 select 使用 Selenium 和 Java 的第一个自动建议
How to select the first auto suggestion using Selenium and Java
我正在输入我要搜索的名称,然后它会显示自动建议,但我无法select来自自动建议的第一个选项。
这是带有 TestNG 插件的 eclipse oxygen
driver.findElement(By.className("searchfilter")).sendKeys("Abilify");// This is working But after that option selection is not working
driver.findElement(By.cssSelector(".list-group-item:first-child")).click(); // Issue is here
Html代码:
<li class="list-group-item list-group-item-action py-3 tabindex fs-1-1 bg-offwhite" id="indexTab1" href="970-ABILIFY" name="ABILIFY - ARIPIPRAZOLE">ABILIFY - ARIPIPRAZOLE</li>
1- 首先在搜索框中输入您的单词。
2- 然后等到您的搜索元素可见或可点击。
WebDriverWait wait = new WebDriverWait(driver, milliseconds);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//li[@id='indexTab1']"))));
3- 然后点击想要的元素
driver.findElement(By.xpath("//li[@id='indexTab1']")).click();
一旦您使用所需的文本调用 sendKeys()
,对于 select 您需要为 visibilityOfElementLocated()
引入 WebDriverWait 的第一个自动建议您可以使用以下任一项 :
cssSelector
:
driver.findElement(By.className("searchfilter")).sendKeys("Abilify");
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("li.list-group-item-action[name='ABILIFY - ARIPIPRAZOLE'][href$='-ABILIFY']"))).click();
xpath
:
driver.findElement(By.className("searchfilter")).sendKeys("Abilify");
new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[contains(@class, 'list-group-item-action') and @name='ABILIFY - ARIPIPRAZOLE'][contains(., 'ABILIFY - ARIPIPRAZOLE')]"))).click();
我想,你的是单页应用。很可能是它的 angular js 应用程序。这些 SPA 根据您在下拉编辑框中键入的内容在下拉列表中保留 updating/displaying 选项。
请尝试以下代码,
driver.findElement(By.className("searchfilter")).sendKeys("Abilify");
driver.findElement(By.Xpath("//li[contains(text(), 'Abilify')]")) 。点击() ; // 注意:如果有多个匹配项,Selenium 总是处理第一个元素。
您还可以像下面这样参数化您的选择值
String temp=" Abilify";
driver.findElement(By.className("searchfilter")).sendKeys(temp);
driver.findElement(By.Xpath("//li[contains(text()," + temp +")]")).click() ;
此致,
帕萨
我正在输入我要搜索的名称,然后它会显示自动建议,但我无法select来自自动建议的第一个选项。
这是带有 TestNG 插件的 eclipse oxygen
driver.findElement(By.className("searchfilter")).sendKeys("Abilify");// This is working But after that option selection is not working
driver.findElement(By.cssSelector(".list-group-item:first-child")).click(); // Issue is here
Html代码:
<li class="list-group-item list-group-item-action py-3 tabindex fs-1-1 bg-offwhite" id="indexTab1" href="970-ABILIFY" name="ABILIFY - ARIPIPRAZOLE">ABILIFY - ARIPIPRAZOLE</li>
1- 首先在搜索框中输入您的单词。
2- 然后等到您的搜索元素可见或可点击。
WebDriverWait wait = new WebDriverWait(driver, milliseconds);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//li[@id='indexTab1']"))));
3- 然后点击想要的元素
driver.findElement(By.xpath("//li[@id='indexTab1']")).click();
一旦您使用所需的文本调用 sendKeys()
,对于 select 您需要为 visibilityOfElementLocated()
引入 WebDriverWait 的第一个自动建议您可以使用以下任一项
cssSelector
:driver.findElement(By.className("searchfilter")).sendKeys("Abilify"); new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("li.list-group-item-action[name='ABILIFY - ARIPIPRAZOLE'][href$='-ABILIFY']"))).click();
xpath
:driver.findElement(By.className("searchfilter")).sendKeys("Abilify"); new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[contains(@class, 'list-group-item-action') and @name='ABILIFY - ARIPIPRAZOLE'][contains(., 'ABILIFY - ARIPIPRAZOLE')]"))).click();
我想,你的是单页应用。很可能是它的 angular js 应用程序。这些 SPA 根据您在下拉编辑框中键入的内容在下拉列表中保留 updating/displaying 选项。
请尝试以下代码,
driver.findElement(By.className("searchfilter")).sendKeys("Abilify");
driver.findElement(By.Xpath("//li[contains(text(), 'Abilify')]")) 。点击() ; // 注意:如果有多个匹配项,Selenium 总是处理第一个元素。
您还可以像下面这样参数化您的选择值
String temp=" Abilify"; driver.findElement(By.className("searchfilter")).sendKeys(temp);
driver.findElement(By.Xpath("//li[contains(text()," + temp +")]")).click() ;
此致, 帕萨