简体   繁体   English

如何向下滚动特定的div以查找元素并通过Java中的Selenium WebDriver单击它

[英]How to scroll down of specific div to locate an element and make it clickable via selenium webdriver in java

在此处输入图片说明 I need to click on a button 'NEW'. 我需要单击“新建”按钮。 The element button is visible on DOM but it's not clickable because it's overlapped and i need to scroll down left side of the page to make it clickable. 元素按钮在DOM上可见,但不可单击,因为它是重叠的,我需要向下滚动页面左侧以使其可单击。 I was trying inject some javascript but it didn't help in my case: 我正在尝试注入一些JavaScript,但对我的情况没有帮助:

JavascriptExecutor js = ((JavascriptExecutor) driver);
js.executeScript("scroll(" + driver.findElement(By.xpath(//div[@class = 'save-new'])).getLocation().getX() + "," + driver.findElement(By.xpath(//div[@class = 'save-new'])).getLocation().getY() + ")");

Try: 尝试:

targetElement = driver.findElement(By.xpath("your xpath"));
JavascriptExecutor js = ((JavascriptExecutor) driver);
// This:
js.executeScript("arguments[0].scrollIntoView(true);", targetElement);
targetElement.click();
// Or maybe even just:
js.executeScript("arguments[0].click();", targetElement);

As i feel @damian should worked but you can also tried my code I used it so mny times 因为我觉得@damian应该可以工作,但您也可以尝试我的代码,所以我曾多次使用它

Use this code: 使用此代码:

WebElement element = driver.findElement(By.xpath("Value"));

((JavascriptExecutor)driver).executeScript(“arguments[0].scrollIntoView();”, element);

element.click();

You can try this way:-- 您可以这样尝试:-

    JavascriptExecutor js = ((JavascriptExecutor) driver);

  //Scroll your page to down using below code 
    ((JavascriptExecutor)driver).executeScript(“window.scroll(100,2000)”);

// click on button 
driver.findElement(By.xpath(//div[@class ='save-new'])).click()

Hope this help you :) 希望这对您有所帮助:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM