如何解决org.openqa.selenium.WebDriverException?
How to resolve org.openqa.selenium.WebDriverException?
我正在编写一个自动化测试,如果出现错误,我想直接在 GitHub 的存储库中报告错误。在我的程序中失败的步骤是 提交新问题 来自 GitHub 问题跟踪器的按钮。
代码如下:
WebElement sendIssue = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button"));
sendIssue.click();
例外情况:
org.openqa.selenium.WebDriverException: Element is not clickable at
point (883, 547.7999877929688). Other element would receive the click:
div class="modal-backdrop"></div
下面的命令也不起作用:
((JavascriptExecutor) driver).executeScript("arguments[0].click();", sendIssue);
如何让它可以点击?还有其他方法可以解决这个问题吗?
Selenium Webdriver 在先前版本 (v2.48) 中引入了一种新行为,可防止点击可能与其他内容(例如固定页眉或页脚)重叠或可能不在您的视口中的元素(浏览器中网页的可见区域 window)。
可以看到辩论here.
要解决此问题,您需要滚动(向上或向下)到您尝试单击的元素。
一种方法是这样的 post:
Page scroll up or down in Selenium WebDriver (Selenium 2) using java
在 Github 上创建问题的另一种可能更合理的方法是使用他们的 API。也许去看看会很好!
祝你好运。
发生这种情况是因为当 selenium 试图点击时,所需的元素不可点击。
您必须确保您提供的 Xpath 是绝对的right.If您确定 Xpath 然后尝试以下
替换
WebElement sendIssue = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button"));
sendIssue.click();
和
WebElement sendIssue =(WebElement)new WebDriverWait(DRIVER,10).until(ExpectedConditions.elementToBeClickable(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button")));
sendIssue.click();
如果这不起作用,您将收到超时异常,在这种情况下,请尝试将超时量从 10 增加到 20。
如果还是不行,请post截图HTML。
你需要在问题标题和描述中写一些东西才能让问题可以点击你确定你没有犯点击按钮的错误而没有在那些地方写任何东西我添加截图是为了你的方便。
这对我有用。而不是 HTML 浏览器,如果我们执行预期的 Web 浏览器
,这将很有用
// Init chromedriver
String chromeDriverPath = "/Path/To/Chromedriver" ;
System.setProperty("webdriver.chrome.driver", chromeDriverPath);
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200","--ignore-certificate-errors");
WebDriver driver = new ChromeDriver(options);
我正在编写一个自动化测试,如果出现错误,我想直接在 GitHub 的存储库中报告错误。在我的程序中失败的步骤是 提交新问题 来自 GitHub 问题跟踪器的按钮。
代码如下:
WebElement sendIssue = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button"));
sendIssue.click();
例外情况:
org.openqa.selenium.WebDriverException: Element is not clickable at point (883, 547.7999877929688). Other element would receive the click: div class="modal-backdrop"></div
下面的命令也不起作用:
((JavascriptExecutor) driver).executeScript("arguments[0].click();", sendIssue);
如何让它可以点击?还有其他方法可以解决这个问题吗?
Selenium Webdriver 在先前版本 (v2.48) 中引入了一种新行为,可防止点击可能与其他内容(例如固定页眉或页脚)重叠或可能不在您的视口中的元素(浏览器中网页的可见区域 window)。 可以看到辩论here.
要解决此问题,您需要滚动(向上或向下)到您尝试单击的元素。
一种方法是这样的 post:
Page scroll up or down in Selenium WebDriver (Selenium 2) using java
在 Github 上创建问题的另一种可能更合理的方法是使用他们的 API。也许去看看会很好!
祝你好运。
发生这种情况是因为当 selenium 试图点击时,所需的元素不可点击。
您必须确保您提供的 Xpath 是绝对的right.If您确定 Xpath 然后尝试以下
替换
WebElement sendIssue = driver.findElement(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button"));
sendIssue.click();
和
WebElement sendIssue =(WebElement)new WebDriverWait(DRIVER,10).until(ExpectedConditions.elementToBeClickable(By.xpath("/html/body/div[5]/div/div/div[2]/div[1]/div/form/div[2]/div[1]/div/div/div[3]/button")));
sendIssue.click();
如果这不起作用,您将收到超时异常,在这种情况下,请尝试将超时量从 10 增加到 20。
如果还是不行,请post截图HTML。
你需要在问题标题和描述中写一些东西才能让问题可以点击你确定你没有犯点击按钮的错误而没有在那些地方写任何东西我添加截图是为了你的方便。
这对我有用。而不是 HTML 浏览器,如果我们执行预期的 Web 浏览器
,这将很有用// Init chromedriver
String chromeDriverPath = "/Path/To/Chromedriver" ;
System.setProperty("webdriver.chrome.driver", chromeDriverPath);
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200","--ignore-certificate-errors");
WebDriver driver = new ChromeDriver(options);