Selenium 如何发送“单击隐藏”按钮?

Selenium 如何发送“单击隐藏”按钮?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我在一个页面上有一个简单的提交按钮,我需要发送一个点击按钮,但是这个按钮位于页面底部,除非用户使用浏览器垂直滚动条来访问它,否则不会出现 所以当我使用这个C代码时,我得到的错误元素是不可见的,那么我如何解决这个问题呢 driver.FindElement(By.Id("submit")).Click(); 如果您看不到它,则通过selenium驱动程序使用的浏览器不会渲染它。 我建议您模拟滚动以确保您的项目可见,或者以更大的分辨率进行模拟? 最后,你可以考虑切换到无头驱动程序…如果你看不到,它

我在一个页面上有一个简单的提交按钮,我需要发送一个点击按钮,但是这个按钮位于页面底部,除非用户使用浏览器垂直滚动条来访问它,否则不会出现

所以当我使用这个C代码时,我得到的错误元素是不可见的,那么我如何解决这个问题呢

driver.FindElement(By.Id("submit")).Click();

如果您看不到它,则通过selenium驱动程序使用的浏览器不会渲染它。
我建议您模拟滚动以确保您的项目可见,或者以更大的分辨率进行模拟?

最后,你可以考虑切换到无头驱动程序…

如果你看不到,它不是通过你的硒驱动程序使用的浏览器渲染。 我建议您模拟滚动以确保您的项目可见,或者以更大的分辨率进行模拟?

最后,你可以考虑切换到无头驱动程序…

,可以使用JavaScript向下滚动。像这样的东西应该能起作用

((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");

您可以使用javascript向下滚动。像这样的东西应该能起作用

((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");

Selenium Webdriver隐式滚动到元素(如果该元素可见)。可以等待图元的可见性,然后执行单击操作。在Java中,我们可以使用以下代码等待可见性:

WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOfElementLocated(driver.findElement(By.id("submit"))));

在上面的代码中,Webdriver将等待60秒,以使所需的元素可见。如果在60秒内,元素没有出现,则它将失败并出现超时错误。一旦所需元素可见,就可以单击它。

Selenium Webdriver隐式滚动到该元素(如果可见)。可以等待图元的可见性,然后执行单击操作。在Java中,我们可以使用以下代码等待可见性:

WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOfElementLocated(driver.findElement(By.id("submit"))));

在上面的代码中,Webdriver将等待60秒,以使所需的元素可见。如果在60秒内,元素没有出现,则它将失败并出现超时错误。一旦所需元素可见,就可以单击它。

我发现了问题,页面中有两个元素id=“submit”!!我使用了Name,现在它工作正常,谢谢大家。

我发现问题所在,页面中有两个元素id=“submit”!!我使用了这个名称,现在它工作得很好,谢谢大家。

顺便说一句,这是一个bug,您应该为您的开发人员编写它。DOM不应该有重复的ID,ever.BTW,这是一个bug,您应该为开发人员编写它。DOM永远不应该有重复的ID。