gpt4 book ai didi

java - 我正在使用 Actions 类移动到某个元素,但无法单击下拉列表中的元素

转载 作者:行者123 更新时间:2023-11-30 06:47:12 25 4
gpt4 key购买 nike

public static void main() throws InterruptedException {
Thread.sleep(5000);
Actions a = new Actions(driver);
WebElement as = driver.findElement(By.xpath(".//*[@id='yourAccount']"));
a.moveToElement(as).build().perform();
WebElement login = driver.findElement(By.xpath("//ul[@class='hFlyout guest gnf_nav_depth2_list']//li[12]//button"));
System.out.println(login.isDisplayed());
login.click();
Thread.sleep(5000);
driver.switchTo().frame(1);
System.out.println("pass");
driver.findElement(By.linkText("Join for free")).click();
Thread.sleep(5000);
}
  • 网站:http://www.sears.com/
  • 鼠标悬停在元素上:登录帐户和积分
  • 下拉元素:“免费加入”
  • 我使用的是 Firefox 浏览器

最佳答案

您不应该使用Thread.sleep(),因为这是一种不好的做法。请改用 WebDriverWait

从您的代码来看,您的悬停似乎是正确的,但您需要短暂等待以确保面板打开并且“免费加入”按钮可见且可单击。 WebDriverWait 可以轻松解决这个问题...您只需等待按钮可单击,然后单击它即可。

driver.get("https://www.sears.com/");
Actions hover = new Actions(driver);
hover.moveToElement(driver.findElement(By.id("yourAccount"))).build().perform();
new WebDriverWait(driver, 3).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button[data-action='join']"))).click();

这段代码对我有用。

关于java - 我正在使用 Actions 类移动到某个元素,但无法单击下拉列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43508787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com