3 回答

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
1- 首先在搜索框中輸入您的單詞。
2-然后等待,直到搜索元素可見(jiàn)或可單擊。
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();

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
我認(rèn)為,你的是單頁(yè)應(yīng)用程序。最有可能的是它的 Angular js 應(yīng)用程序。這些 SPA 根據(jù)您在下拉編輯框中鍵入的內(nèi)容不斷更新/顯示下拉列表中的選項(xiàng)。
請(qǐng)嘗試以下代碼,
driver.findElement(By.className("searchfilter")).sendKeys("Abilify");
driver.findElement(By.Xpath("//li[contains(text(), 'Abilify')]")) 。點(diǎn)擊() ; // 注意:如果存在多個(gè)匹配項(xiàng),Selenium 始終對(duì)第一個(gè)元素起作用。
您還可以參數(shù)化您的選擇值,如下所示
String temp=“能力”;driver.findElement(By.className("searchfilter")).sendKeys(temp);
driver.findElement(By.Xpath("//li[contains(text()," + temp +")]")).click() ;

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
使用sendKeys()所需文本調(diào)用后,要選擇第一個(gè)自動(dòng)建議,您需要引發(fā)WebDriverWait,并且visibilityOfElementLocated()可以使用以下定位器策略之一:
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();
添加回答
舉報(bào)