2 回答

TA貢獻1844條經驗 獲得超8個贊
您可以首先使用以下方法單擊下拉元素:
driver.findElement(By.id("combo-1781-inputEl")).click();
然后您可以使用以下命令單擊“測試”元素:
driver.findElement(By.xpath("//div[@id='boundlist-1930-listEl']//li[text()='Test']")).click();
您還可以在此處參數化“測試”文本,以便將來如果您想單擊任何其他下拉值,您可以在 xpath 中發送該文本然后單擊它,您可以這樣做:
String text="Test"; driver.findElement(By.xpath("//div[@id='boundlist-1930-listEl']//li[text()="+text+"]")).click();

TA貢獻1833條經驗 獲得超4個贊
如您的代碼所示,具有 id 的元素boundlist-1930-listEl不是<select>節點。這就是為什么UnexpectedTagNameException被拋出。
要從這種下拉列表中選擇項目,您需要首先使下拉列表可見,我假設通過單擊<input>元素。然后您必須等待列表顯示,然后單擊要選擇的項目。
嘗試這個:
WebDriverWait wait = new WebDriverWait(driver,30);
driver.findElement(By.id("combo-1781-inputEl")).click();
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.cssSelector("div#bounddlist-1930-list > ul"))));
driver.findElement(By.xpath("//div[@id='bounddlist-1930-list']/ul/li[contains(text(),'Test')]")).click();
添加回答
舉報