• 小结5点


    1、第一个对浏览器的操作

    WebDriver driver = new ChromeDriver();

    drivr. ----对浏览器的操作

    //配置驱动的方式和地址
    System.setProperty("webdriver.chrome.driver", "E:\javaselenium\bao\chromedriver.exe");
    //实例化这个驱动
    WebDriver driver = new ChromeDriver();
    //浏览器获取地址
    driver.get("http://www.baidu.com");

    System.out.println(driver.getTitle());


    2、元素定位,再对元素的操作

    WebElement ele2 = driver.findElement(By.partialLinkText("设置"));

    ele2. -----先定位,后对元素的操作

    Xpath定位: https://www.w3school.com.cn/xpath/xpath_functions.asp


    3、模拟鼠标的操作
    鼠标右击、双击、悬停、甚至是鼠标拖动等功能

    WebDriver driver = new ChromeDriver();
    Actions action = new Actions(driver);

    action. ------模拟鼠标的操作

    例子1:

    WebElement ele1 = driver.findElement(By.xpath("//div[1]/div[1]/div[4]/span"));
    action.moveToElement(ele1).perform();

    Actions 类提供了鼠标操作的常用方法:

    contextClick() 右击
    clickAndHold() 鼠标点击并控制
    doubleClick() 双击
    dragAndDrop() 拖动
    release() 释放鼠标
    perform() 执行所有Actions中存储的行为


    4、模拟键盘操作

    import org.openqa.selenium.Keys;

    Keys()类提供了键盘上几乎所有按键的方法

    sendKeys()方法可以用来模拟键盘输入

    WebElement input = driver.findElement(By.id("kw"));

    input.sendKeys(Keys.BACK_SPACE);

    在使用键盘按键方法前需要先导入 keys 类。

    以下为常用的键盘操作:
    sendKeys(Keys.BACK_SPACE) 回格键(BackSpace)
    sendKeys(Keys.SPACE) 空格键(Space)
    sendKeys(Keys.TAB) 制表键(Tab)
    sendKeys(Keys.ESCAPE) 回退键(Esc)
    sendKeys(Keys.ENTER) 回车键(Enter)
    sendKeys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
    sendKeys(Keys.CONTROL,‘c’) 复制(Ctrl+C)
    sendKeys(Keys.CONTROL,‘x’) 剪切(Ctrl+X)
    sendKeys(Keys.CONTROL,‘v’) 粘贴(Ctrl+V)
    sendKeys(Keys.F1) 键盘 F1
    ……
    sendKeys(Keys.F12) 键盘 F12

    5、Xpath定位,使用and 、or、| 等运算符

    //WebElement ele1 = driver.findElement(By.xpath("//*[@id='login-email']"));
    WebElement ele1 = driver.findElement(By.xpath("//input[@placeholder='手机号' and @name='email']")); //使用and,多元素定位
    //WebElement ele1 = driver.findElement(By.xpath("//input[@placeholder='手机号' or @name='email']")); //使用or,多元素定位
    //WebElement ele1 = driver.findElement(By.xpath("//input[@placeholder='手机号' | @name='email']")); //使用|,多元素定位

    6、for循环,依次点击下拉框的元素

    for(int i=0;i<8;i++){
    WebElement ele4 =driver.findElement(By.xpath("//div[contains(@class,'c-select adv-ft-select')]/div[1]/i[1]"));
    ele4.click();
    Thread.sleep(2000);
    System.out.println("点击下拉列表");

    List<WebElement> ele5 = driver.findElements(By.xpath("//div[contains(@class,'c-select adv-ft-select')]/div[2]/div[2]/p"));
    ele5.get(i).click();
    Thread.sleep(3000);
    System.out.println("点击"+i+"个选项");
    System.out.println(ele5.get(i).getText());
    }

    7、定位一组元素

    List<WebElement> ele4 = driver.findElements(By.xpath("//div[@class='search-setting']/ul/li[2]/span[2]/span"));
    System.out.println(ele4.size());
    for(int i=0;i<ele4.size();i++){
    Thread.sleep(1000);
    ele4.get(i).click();
    System.out.println(ele4.get(i).getAttribute("class"));

    }

    System.out.println(driver.getTitle());
    System.out.println(driver.getWindowHandle());
    driver.quit();

    8、QQ邮箱登陆。element包含在frame内,因此需要在查找元素前加入转到frame语句。这里普通的是定位不到的

    System.setProperty("webdriver.chrome.driver", "E:\javaselenium\bao\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https://mail.qq.com/");
    driver.manage().window().maximize();
    Thread.sleep(3000);

    WebElement frame=driver.findElement(By.id("login_frame")); // 添加frame元素
    driver.switchTo().frame(frame);
    //原因: 因为element包含在frame内,因此需要在查找元素前加入转到frame语句。这里普通的是定位不到的

    WebElement ele6 = driver.findElement(By.xpath("//div[@class='web_login']/div[2]/form/div[1]/div/input"));
    Thread.sleep(1000);
    ele6.sendKeys("xxx");
    System.out.println("输入QQ号");

    WebElement ele7 = driver.findElement(By.xpath("//div[@class='web_login']/div[2]/form/div[2]/div[1]/input"));
    Thread.sleep(1000);
    ele7.sendKeys("xxx");
    System.out.println("输入QQ密码");

    WebElement ele8 = driver.findElement(By.xpath("//div[@class='web_login']/div[2]/form/div[4]/a/input"));
    Thread.sleep(1000);
    ele8.click();
    System.out.println("点击登陆");


    Thread.sleep(10000);

    driver.quit();

  • 相关阅读:
    团队项目 第一次作业
    20165201 课下作业第十周(选做)
    20165201 实验三敏捷开发与XP实践
    20165201 2017-2018-2 《Java程序设计》第9周学习总结
    20165201 结对编程练习_四则运算(第二周)
    20165201 2017-2018-2 《Java程序设计》第8周学习总结
    20165201 实验二面向对象程序设计
    20165326 java实验五
    20165326 课程总结
    20165326 java实验四
  • 原文地址:https://www.cnblogs.com/hcxy2007107708/p/12782897.html
Copyright © 2020-2023  润新知