在Linux环境下使用selenium执行web自动化

一、执行测试的必要组件

对于selenium的执行方式有很多,包括支持不同语言,实际使用时肯定选择自己熟悉的架构,比如我选择使用webdriver驱动的方式。

需要的组件包括:驱动firefox的工具geckodriver,加载到eclipse里的jar包 selenium-server-standalone.jar。

这个组合就可以实现在linux环境下,顺利调起firefox进行web的功能自动化测试。

二、组件部署

把geckodriver放在任意一个可访问的位置,为把他放在 了/usr/bin/下,然后在/etc/profile的PATH中增加了一个引用。

selenium-server-standalone.jar更简单,只要在java的工程里添加jar即可。

--geckodriver下载位置 https://github.com/mozilla/geckodriver/releases 有linux和windows两种支持

三、基本语法

--引用基本的包

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.edge.EdgeDriver;

import org.openqa.selenium.ie.InternetExplorerDriver;

import org.openqa.selenium.opera.OperaDriver;

import org.openqa.selenium.phantomjs.PhantomJSDriver;

--此为当前可支持的浏览器

WebDriver driver = new ChromeDriver();    //Chrome浏览器

WebDriver driver = new FirefoxDriver();   //Firefox浏览器

WebDriver driver = new EdgeDriver();      //Edge浏览器

WebDriver driver = new InternetExplorerDriver();  // Internet Explorer浏览器

WebDriver driver = new OperaDriver();     //Opera浏览器

WebDriver driver = new PhantomJSDriver();   //PhantomJS

--同时使用不同浏览器的话,首先要注意实例化的名称要有区别,另外/usr/bin/下的webdriver工具要补全。

selenium有8种定位方式:

  1. id
  2. name
  3. class name
  4. tag name
  5. link text
  6. partial link text
  7. xpath
  8. css selector

可以根据页面种没种元素使用的属性,灵活定位元素。

这8种定位方式在使用时:

driver.findElement(By.id())

driver.findElement(By.name())

driver.findElement(By.className())

driver.findElement(By.tagName())

driver.findElement(By.linkText())

driver.findElement(By.partialLinkText())

driver.findElement(By.xpath())

driver.findElement(By.cssSelector())

通过xpath定位,xpath定位有N种写法,这里列几个常用写法:

driver.findElement(By.xpath("//[@id='kw']"))driver.findElement(By.xpath("//[@name='wd']"))

driver.findElement(By.xpath("//input[@class='s_ipt']"))

driver.findElement(By.xpath("/html/body/form/span/input"))

driver.findElement(By.xpath("//span[@class='soutu-btn']/input"))

driver.findElement(By.xpath("//form[@id='form']/span/input"))

driver.findElement(By.xpath("//input[@id='kw' and @name='wd']"))

通过css定位,css定位有N种写法,这里列几个常用写法:

driver.findElement(By.cssSelector("#kw")

driver.findElement(By.cssSelector("[name=wd]")

driver.findElement(By.cssSelector(".s_ipt")

driver.findElement(By.cssSelector("html > body > form > span > input")

driver.findElement(By.cssSelector("span.soutu-btn> input#kw")

driver.findElement(By.cssSelector("form#form > span > input")

直接使用文本连接定位:

<a class="mnav" href="https://blog.csdn.net/%3Ca%20href="http://news.baidu.com/" title="百度新闻——海量中文资讯平台" rel="nofollow">百度新闻——海量中文资讯平台" name="tj_trnews">新闻</a>

driver.findElement(By.linkText("新闻") --通过link text定位

driver.findElement(By.partialLinkText("新") --通过partialLink text定位

获得元素后,对元素进行操作:

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

WebElement search_button = driver.findElement(By.id("su"));

search_text.sendKeys("Java");

search_button.click();

--更多可用方法,可以直接通过补全命令查看。

四、selenium驱动浏览器

    driver.get("重定向科技"); --打开新窗口,地址为字符串内容。

    String title

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你说我听海绵宝宝派大星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值