selenium操作webdriver(一)

在用selenium操作driver,有时候窗口里面会嵌套着一个小窗体,小窗体里面的滚动条下拉时需要先获取小窗体中的某个元素,执行执行点击操作,才可以使其滚动条下拉

首先导入selenium-java的jar包

<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.4.0</version>
</dependency>

代码如下

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Test {
    public static void main(String[] args) throws Exception{
        System.out.println("start firefox browser...");
        System.setProperty("webdriver.chrome.driver","D:/development/chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("enable-automation");
        options.addArguments("--disable-infobars");
        WebDriver driver = new ChromeDriver(options);
        String url = null;
        url = "目标网址" ;
//        url = "http://www.hao123.com";
        driver.get(url);
        System.out.println("title is: "+driver.getTitle());
        driver.manage().window().maximize();//窗口最大化
        Thread.sleep(5000);//等待5秒  页面元素加载完成
        WebElement element = driver.findElement(By.xpath("小窗体中的元素xpath定位"));
        element.click();//不点击滚动条下拉就不好使,我也是醉了
        //执行js使窗口滚动条下拉到底部
        JavascriptExecutor driver_js= (JavascriptExecutor) driver;
        driver_js.executeScript("window.scrollTo(0,document.body.scrollHeight)");
        //利用js代码键入搜索关键字
//        driver_js.executeScript("document.getElementById(\"kw\").value=\"hello\"");
//        driver.findElement(By.id("su")).click();
    }
}

例子:打开hao123网页,然后下拉到最底端,5秒后关闭

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Test {
    public static void main(String[] args) throws Exception{
        System.out.println("start firefox browser...");
        System.setProperty("webdriver.chrome.driver","D:/development/chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("enable-automation");
        options.addArguments("--disable-infobars");
        WebDriver driver = new ChromeDriver(options);
        String url = null;
        url = "http://www.hao123.com";
        driver.get(url);
        System.out.println("title is: "+driver.getTitle());
        //窗口最大化
        driver.manage().window().maximize();
        //等待元素页面加载
        waitForElementToLoad(driver, 5, By.xpath("//*[@id=\"box-weibobottom\"]/div[1]/div[2]/div/h3/a"));
        //执行js使窗口滚动条下拉到底部
        JavascriptExecutor driver_js= (JavascriptExecutor) driver;
        driver_js.executeScript("window.scrollTo(0,document.body.scrollHeight)");
        Thread.sleep(5000);
        driver.close();
    }
    public static void waitForElementToLoad(WebDriver driver, int timeOut, final By By) {
        try {
            (new WebDriverWait(driver, timeOut)).until(new ExpectedCondition<Boolean>() {

                public Boolean apply(WebDriver driver) {
                    WebElement element = driver.findElement(By);
                    return element.isDisplayed();
                }
            });
        } catch (TimeoutException e) {
            System.out.println("超时!! " + timeOut + " 秒之后还没找到元素 [" + By + "]");
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值