Selenium webdriver 不要向下滚动
我在硒方面有个问题。 我想向下滚动页面,并创建了以下方法:Selenium webdriver 不要向下滚动,selenium-webdriver,selenium-chromedriver,Selenium Webdriver,Selenium Chromedriver,我在硒方面有个问题。 我想向下滚动页面,并创建了以下方法: public static void scrollDownToEndOfPage() { By locator; locator = By.xpath("//label[contains(text(),'Blocked advertisers')]//ancestor::nz-form-item//nz-select//input"); WebDriver driver2 = We
public static void scrollDownToEndOfPage()
{
By locator;
locator = By.xpath("//label[contains(text(),'Blocked advertisers')]//ancestor::nz-form-item//nz-select//input");
WebDriver driver2 = WebDriverMgr.getDriver();
JavascriptExecutor js = (JavascriptExecutor) driver2;
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
((JavascriptExecutor)driver2).executeScript("window.scrollTo(0, document.body.scrollHeight)");
js.executeScript("window.scrollBy(0,250)");
js.executeScript("arguments[0].scrollIntoView();", locator);
}
当我调试什么都没发生时,这是日志
Wed Dec 18 18:35:14 IST 2019:INFO: WebDriver: Script - window.scrollTo(0, document.body.scrollHeight)
Wed Dec 18 18:35:14 IST 2019:INFO: WebDriver: Script - window.scrollTo(0, document.body.scrollHeight)
Wed Dec 18 18:35:14 IST 2019:INFO: WebDriver: Script - window.scrollBy(0,250)
Wed Dec 18 18:35:14 IST 2019:ERROR: Argument is of an illegal type: org.openqa.selenium.By$ByXPath
Wed Dec 18 18:35:14 IST 2019:INFO: WebDriver: Script - arguments[0].scrollIntoView();
java.lang.IllegalArgumentException: Argument is of an illegal type: org.openqa.selenium.By$ByXPath
at org.openqa.selenium.remote.internal.WebElementToJsonConverter.apply(WebElementToJsonConverter.java:83)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
这是我运行卷轴后的屏幕
该页面是从屏幕侧面打开的绘图,我想向下滚动,有人可以建议吗
这个解决方案按照苏拉吉的建议起了作用
public static void scrollToElement(By locator)
{
// locator = By.xpath("//label[contains(text(),'Blocked advertisers')]//ancestor::nz-form-item//nz-select//input");
WebDriver driver2 = WebDriverMgr.getDriver();
WebElement element = driver2.findElement(locator);
JavascriptExecutor js = (JavascriptExecutor) driver2;
// js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
// ((JavascriptExecutor)driver2).executeScript("window.scrollTo(0, document.body.scrollHeight)");
// js.executeScript("window.scrollBy(0,250)");
js.executeScript("arguments[0].scrollIntoView();", element);
}
尝试使用javascript scrollIntoView,并在不可见区域中传递要与之交互的元素:
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(locator);
js.executeScript("arguments[0].scrollIntoView();", element);
我按照你说的做了,我在定位器中放入了字段xpath,我没有看到和得到Wed Dec 18 18:19:39 IST 2019:错误:参数属于非法类型:org.openqa.selenium.By$ByXPath Wed Dec 18:19:39 IST 2019:INFO:WebDriver:Script-arguments[0]。scrollIntoView();我用定位器试过了;locator=By.xpath(//label[contains(text(),'Blocked')]//祖先::nz表单项//nz select//input”);js.executeScript(“参数[0].scrollIntoView();”,定位器)@Bastian,例外情况是Xpath有问题。请在问题中添加html作为代码,但出现此错误。我只想要打开的侧窗体向下滚动。我设法填写了表单,但是我在表单的按钮中有一些字段,无法访问它们。您必须传入找到的WebElement,而不是定位器。