一、执行测试的必要组件
对于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工具要补全。
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']"))
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

3164

被折叠的 条评论
为什么被折叠?



