我试图在所附的弹出窗口屏幕中单击“ 继续”按钮。但是,正常的硒“单击”不起作用。请告知如何在此弹出窗口中单击继续按钮。上窗口?
按钮的HTML:
<button class="oval-btn last-popup-btn startang teal track-564677"
data-track="{"loc":"popup","nm":"tpg-tool-start-popup"}">Continue</button>
答案 0 :(得分:0)
在按下按钮之前,您还应该检查页面是否已加载。
JavascriptExecutor executor = (JavascriptExecutor) driver; executor.executeScript ("return document.readyState").toString().equals("complete");
使用JavascriptExecutor添加按钮。
JavascriptExecutor executor = (JavascriptExecutor) driver; executor.executeScript("arguments[0].click();", driver.findElement(By.//yourXPath//););
答案 1 :(得分:0)
首先检查这是弹出窗口还是iframe: 如果是iframe,请先切换到它,然后执行点击操作。
如果正常点击不起作用,则可以使用JavascriptExecutor或Actions类: 使用Actions类的click方法:
WebElement element = driver.findElement(By.xpath("//button[contains(.,'Continue')]"));
public static void actionClick(WebDriver driver, WebElement element) {
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();
}
使用JavacsriptExecutor方法:
public static void jsClick(WebDriver driver, WebElement element) {
((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
}
希望对您有帮助:)
答案 2 :(得分:0)
根据您共享的 HTML ,以文本为 Continue 的元素调用元素上的click()
,您需要引入 WebDriverWait 为所需的元素可点击,您可以使用以下任一解决方案:
cssSelector
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.oval-btn.last-popup-btn.startang.teal"))).click();
xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(@class,'track-')][contains(.,'Continue')]"))).click();