打开浏览器
-
火狐浏览器
System.setProperty("webdriver.gecko.driver","D:\\demo\\geckodriver.exe"); System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla"); WebDriver wd=new FirefoxDriver();
-
谷歌浏览器
System.setProperty("webdrriver.chrome.driver","D:\\demo\\chromedriver.exe"); WebDriver driver=new ChromeDriver();
-
IE浏览器
System.setProperty("webdriver.ie.driver","D:\\demo\\chromedriver.exe"); WebDriver wd=new InternetExplorerDriver();
关闭浏览器
driver.close():关闭当前的浏览器窗口,不会关闭geckodriver的进程;
driver.quit():不仅关闭窗口,还会彻底的退出webdriver,释放与driver server之间的连接,关闭进程。
WebDriver对浏览器的操作
-
访问某网页的地址:driver.get(“https://www.vaidu.com/”)
-
返回/前进/刷新:
driver.navigate().back(); driver.navigate().forward(); driver.navigate().refresh();
访问链接-打印页面信息
String title=driver.getTitle();
String current=driver.getCurrentUrl();
String htmlsrc=driver.getPageSource();
System.out.println(title);
元素定位
定位方法 | 实例 |
---|---|
ID | driver.findElement(By.id(“id值”)) |
name | driver.findElement(By.name(“name值”)) |
链接的全部文字 | driver.findElement(By.linkText(“linkText”)) |
部分链接文字 | driver.findElement(By.partialLinkText(“部分linkText值”)) |
xpath方式 | driver.findElement(By.xpath(“xpath的值”)) |
CSS | driver.findElement(By.cssSelector(“css定位表达式”)) |
Class名称 | dirver.findElement(By.className(“class属性值”)) |
标签名称 | driver.findElement(By.tagName(“标签名称”)) |
xpath查找
-
XPath 语法 (w3school.com.cn)
-
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历,XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。简单说就是找到元素路径的一个工具。
例如:
driver.findElement(By.xpath("//*[@id=\"toolbar-search-input\"]")).click(); WebElement button= driver.findElement(By.xpath(“//input[@value=‘查询’]”)
- XML是指可扩展标记语言,被设计用来传输和存储数据, XML 不会做任何事情。XML 被设计用来结构化、存储以及传输信息,这个 XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
Xpath语法:
表达式 | 描述 |
---|---|
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的结点,而不考虑他们的位置 |
@ | 选取属性 |
* | 匹配任何元素结点 |
@* | 匹配任何属性结点 |
//* | 选取文档中所有元素 |
//title[@*] | 选取所有带属性title的元素 |
CSS查找
CSS 的引进是为了让 页 面 信 息 和 样 式 信 息 可 以 分 开 。css定位速度要比xpath快,css通过By.cssSelector(“css定位表达式”)在页面上查找元素
例如:driver.findElement(By.cssSelector(“html>body>div[1]>input[type=‘button’]”));