Java使用Selenium几个例子

零、姿式

Selenium分为两个版本:Selenium RC和Selenium Webdriver。如今用Selenium Webdriver比较多。
Selenium是一套工具,而不单单是一个操纵浏览器的库,它包括Selenium IDE,Selenium Grid等。
Selenium对Firefox浏览器支持得最好,对Chrome支持并不完善。Chrome的设计原则就是安全,让用户安全,由此带来的误伤比较多,对开发人员就不太友好,好比Chrome会自动检测跨域访问并禁止之,Firefox就不会。Firefox的设计原则就是开放,对开发人员十分友好。
SeleniumIDE是Firefox的一款插件,这个插件能够录制用户操做,保存下来的是一个指令序列,这个指令序列能够转换成Java、Python、C#等语言的测试代码。当不知道某个操做怎么写时,能够先用SeleniumIDE操做一下并导出代码,略微改改就能直接用了。css

1、进行百度搜索并点击连接

//WebDriver是一个接口,每一种浏览器都有一个实现类(多态)
   WebDriver webDriver = new FirefoxDriver();
   webDriver.manage().window().maximize();
   //与浏览器同步很是重要,必须等待浏览器加载完毕
   webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
   //下面这句等价于webDriver.navigate().to("www.baidu.com");
   webDriver.get("http://www.baidu.com");
   //在输入框中填写要搜索的内容
   WebElement kw = webDriver.findElement(By.id("kw"));
   kw.sendKeys("java用selenium库控制chrome");
   //点击搜索按钮
   WebElement su = webDriver.findElement(By.id("su"));
   su.click();
   webDriver.findElements(By.className("result")).forEach(x -> {
      System.out.println(x.getText());
   });
   //寻找包含weiyinfu的搜索条目
   webDriver.findElement(By.partialLinkText("weiyinfu")).click();
   //webDriver.close();
   System.out.println("Hello World!");

2、新标签页打开连接

两种方式,一个原理。原理就是模拟快捷键。html

/**
 * 原理就是模拟浏览器的快捷键CTRL+T,
 * 由此可知,经过快捷键的方式能够实现的功能,
 * 例如:前进、后退、书签、收藏等操做均可以实现
 */
public class 新标签页打开连接 {
static void method1(WebDriver webDriver) {
   Actions actionOpenLinkInNewTab = new Actions(webDriver);
   actionOpenLinkInNewTab.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).perform();
   webDriver.get("http://www.baidu.com");
   actionOpenLinkInNewTab.perform();
   webDriver.switchTo().window(webDriver.getWindowHandles().toArray()[1].toString());
   webDriver.get("http://www.baidu.com");
}

static void method2(WebDriver webDriver) {
   webDriver.get("http://www.baidu.com");
   webDriver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
   webDriver.switchTo().window(webDriver.getWindowHandles().toArray()[1].toString());
   webDriver.get("http://www.baidu.com");
}

public static void main(String[] args) {
   //设置好浏览器驱动器的位置
   System.setProperty("webdriver.gecko.driver",
           "C:\\Users\\weidiao\\Desktop\\geckodriver-v0.16.1-win64\\geckodriver.exe");
   WebDriver webDriver = new FirefoxDriver();
      method1(webDriver);
//   method2(webDriver);
}
}

3、模拟登录博客园并发表评论

WebDriver webDriver = new FirefoxDriver();
   //设置默认等待时间,若是没有发现要找的元素就会默认等待30秒钟
   webDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
   webDriver.get("http://www.cnblogs.com/weidiao");
   webDriver.findElement(By.id("homepage1_HomePageDays_DaysList_ctl01_DayList_TitleUrl_0")).click();
   webDriver.findElement(By.linkText("登陆")).click();
   webDriver.findElement(By.id("input1")).clear();
   webDriver.findElement(By.id("input1")).sendKeys("weiyinfu");
   webDriver.findElement(By.id("input2")).clear();
   webDriver.findElement(By.id("input2")).sendKeys("xxxxxxx");
   webDriver.findElement(By.id("remember_me")).click();
   webDriver.findElement(By.id("signin")).click();
   webDriver.findElement(By.id("tbCommentBody")).sendKeys("如今时间" + new Date());
   webDriver.findElement(By.id("btn_comment_submit")).click();

4、资源

selenium能够驱动好多种浏览器
http://www.seleniumhq.org/download/java

chromedriver下载地址
https://chromedriver.storage.googleapis.com/index.html?path=2.9/web

易百教程
http://www.yiibai.com/selenium/selenium_ide.html#article-startchrome

webdriver中文社区
http://www.webdriver.org/article-26-1.htmlapi

一个比较完整的selenium测试教程
http://www.51testing.com/zhuanti/selenium.html跨域

selenium入门
http://www.cnblogs.com/weidiao/p/5930468.html
selenium进阶
http://www.cnblogs.com/weidiao/p/5930739.html
HTMLUnit:无头浏览器
http://www.cnblogs.com/weidiao/p/5931339.html浏览器

相关文章
相关标签/搜索