System.setProperty("webdriver.chrome.driver","C:/Users/3520/Downloads/chromedriver_win32/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
ChromeDriver driver = new ChromeDriver(options);
driver.get("https://leafground.com/select.xhtml");
WebElement dropdown3 = driver.findElement(By.id("j_idt87:auto-complete_input"));
Actions dd = new Actions(driver);
dd.moveToElement(dropdown3).click().perform();
WebElement list = driver.findElement(By.xpath("//*[@id=\"j_idt87:auto-complete_panel\"]/ul/li[4]"));
list.click();
当运行上述代码时,同样失败。帮助解决同样的问题。
2条答案
按热度按时间f4t66c6m1#
假设您要选择下拉列表值,如下所示:
请尝试以下代码:
jrcvhitl2#
有几个问题。
1.第一个ID为
j_idt87:auto-complete_input
的元素是一个INPUT,您单击它。所有这一切都是将光标放在字段中。我假设您的意思是打开下拉列表。1.你没有任何等待。在第二次点击之前,你肯定需要一个
WebDriverWait
,但是在第一次点击之前有一个WebDriverWait
可能会很有用。如果你要等到一个元素可以点击,使用ExpectedConditions.elementToBeClickable()
。存在只是元素存在于DOM中,而不是它可见或准备被点击。如果是我,我会写一个方法来处理这个问题,因为我假设你会不止一次地使用这个代码。
然后从脚本中调用它作为