我有以下代码:

WebElement we = driver.findElement(By.className("status"));
WebElement we1 = driver.findElement(By.id("7oSL5I7egLSgqmGVYpF_lG6VyY3ZR7SArK6pYZVU3g"));

Actions builder = new Actions(driver);
builder.moveToElement(we).build().perform();
builder.moveToElement(we1).build().perform();
we1.click();


在这里,我正在对we元素执行鼠标悬停,但效果很好,但是我无法保持下拉菜单we处于打开状态以供进一步选择we1(复选框)

最佳答案

通常,我希望动作链像这样结合在一起:

builder.moveToElement(we).moveToElement(we1).click().perform();


然后,这应该在链中执行所有必需的操作,而不会暂停并且不会失去悬停焦点。当然,另一个选择是将其分为两个不同的动作,如下所示:

WebDriverWait wait = new WebDriverWait(driver, 15, 100);

builder.moveToElement(we).perform();
waiting.until(ExpectedConditions.visibiltiyOf(we1));
builder.moveToElement(we1).click().perform();


显式等待用于确保在尝试将鼠标悬停并单击之前,元素“ we1”是可见的。

10-06 06:49