在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
上一讲我们介绍了如何部署selenium 2.0的开发环境,这一讲我们将介绍如何使用selenium提供给我们的接口进行浏览器的简单操作。 本文将先介绍适合初级用户的一些常用方法,然后将对一些高级用法和实现源码进行稍微深入一些的分析。 如何打开一个测试浏览器做自动化测试一般情况下我们都需要首先打开测试浏览器,浏览器开启后我们方可”命令”浏览器去打开新页面,点击特定的链接,判断具体的逻辑等等。因此该操作为”万里长征的第一步”,必须给以重视。具体代码如下。需要注意的是如果使用chrome进行测试,那么必须下载安装chrome driver,如果是ie的话,目前必须下载ie driver,另外还需要注意ie的保护模式设置。具体细节参考这里。 require 'rubygems' # for ruby 187 only require 'selenium-webdriver' # 打开firefox dr = Selenium::WebDriver.for :firefox #dr = Selenium::WebDriver.for :ff dr.quit # 打开ie dr = Selenium::WebDriver.for :ie dr.quit #dr = Selenium::WebDriver.for :internet_explorer # 打开chrome dr = Selenium::WebDriver.for :chrome dr.quit from selenium import webdriver driver = webdriver.Firefox() driver.quit() driver = webdriver.Chrome() driver.quit() driver = webdriver.Ie() driver.quit() // 文件OpenBrowser.java import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class OpenBrowser { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.quit(); # 设置firefox的安装路径 System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe"); WebDriver driver2 = new FirefoxDriver(); driver2.quit(); WebDriver driver3 = new InternetExplorerDriver(); driver3.quit(); } } 如何访问1个具体的url打开浏览器后我们需要转到我们的测试站点,也就是要访问1个url。下面的代码可以达成这个目的。 require 'rubygems' # for ruby 187 only require 'selenium-webdriver' dr = Selenium::WebDriver.for :chrome # 使用get方法 dr.get 'http://www.baidu.com' dr.quit() from time import sleep from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com') driver.quit() import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class OpenBrowser { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.get("http://www.baidu.com"); driver.quit(); } } 如何关闭浏览器测试结束后往往需要关闭浏览器,可以使用driver.quit()或者是driver.close()方法。 这两个方法的异同点是:
如何返回当前页面的url这个功能的典型应用场景是:点击一个链接,这时候浏览器跳转到新的页面。测试人员需要判断新页面的url以检查这个链接的跳转是否正确。 下面的代码演示了在百度首页点击"百科"这个链接,跳转到百度百科页面后判断该页面的url是否正确 # encoding: utf-8 require 'rubygems' # for ruby 187 only require 'selenium-webdriver' dr = Selenium::WebDriver.for :chrome url = 'http://www.baidu.com' dr.get url dr.find_element(link_text: '百科').click puts 'correct' if dr.current_url == 'http://baike.baidu.com/' # -*- coding: utf-8 -*- from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com') driver.find_element_by_link_text('百科').click() if driver.current_url == 'http://baike.baidu.com/': print 'correct' driver.quit() import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class OpenBrowser { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.get("http://www.baidu.com"); driver.findElement(By.linkText("百科")).click(); System.out.println(driver.getCurrentUrl()); if(driver.getCurrentUrl().equals("http://baike.baidu.com/")){ System.out.println("correct"); } driver.quit(); } } 如何返回当前页面的title这个功能的应用场景跟返回页面url的情形差不多。 require 'rubygems' require 'selenium-webdriver' dr = Selenium::WebDriver.for :chrome url = 'http://www.qq.com' dr.get url puts dr.title dr.quit from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.qq.com') print driver.title driver.quit() import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class OpenBrowser { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.get("http://www.baidu.com"); driver.findElement(By.linkText("百科")).click(); System.out.println(driver.getTitle()); driver.quit(); } } 其他方法或属性在这里仅仅讨论一些简单的属性和方法,更加复杂的方法会在后面慢慢讨论。 ruby
python
java
深入讨论ruby 源码中,操作浏览器的方法主要封装在lib\selenium\webdriver\common\driver.rb文件中。 该文件定义了Selenium::WebDriver::Driver类。我们启动浏览器就是调用这个类的for方法。 python源码中,操作浏览器的方法主要封装在selenium\webdriver\remote\webdriver.py文件中。 该文件定义了Remote WebDriver类。该类是其他具体的driver,如Chrome WebDriver的父类,实现了大多数的公用方法。 java源码中,操作浏览器的方法主要封装在org\openqa\selenium\remote\RemoteWebDriver.java文件中。 该文件定义了RemoteWebDriver类。该类是其他具体的driver,如Chrome WebDriver的父类,实现了WebDriver和JavascriptExecutor接口。 接下来这一节讨论了浏览器的简单操作,下一节我们将讨论如何在页面上执行js代码。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论