selenium使用chrome浏览器

文章 已结 精帖 0 101
无法显示用户头像
福尔mos 2 白银
2018-10-08 23:30:16
之前的自动化测试脚本一直使用的是firefox浏览器,因为简单方便,不需要额外去安装driver驱动,而且我对firefox的firebug插件也情有独钟,定位元素时使用起来相当方便,但是后期有的项目对chrome浏览器的兼容性最好,使用firefox浏览器会出现元素定位不准确的现象,所以还是需要使用到chrome浏览器进行自动化测试。 1.下载与chrome版本相匹配的chromedriver版本,以下贴出部分版本较新的chrome和chromedriver的版本映射表,我使用的chrome版本为v58,所以下载v2.29的chromedriver版本。下载地址就不贴了。 img[https://newecode1024.oss-cn-hongkong.aliyuncs.com/889a7c8b-5f94-4606-8f2a-025cf82a4a73.png]  2.修改脚本 使用firefox时,测试脚本为: [pre] import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver;   public class test {   WebElement webElement = null; WebDriver driver = new FirefoxDriver();   @BeforeTest public void open() { driver.get("http://www.baidu.com"); driver.manage().window().maximize(); }   @Test(priority = 1) public void searchCSDN() throws InterruptedException { webElement = driver.findElement(By.xpath("//input[@id = \"kw\"]")); webElement.sendKeys("csdn"); webElement = driver.findElement(By.xpath("//*[@id=\"su\"]")); webElement.click(); Thread.sleep(3000); } } [/pre] 首先,我将下载的chromedriver.zip文件解压到F:/test文件夹下 selenium使用chrome,网上主要有两种方案: 第一种,将chromedriver.exe路径F:/test/chromedriver.exe添加到path环境变量中,但是运行脚本,报错---失败 第二种,通过webdriver.chrome.driver系统属性实现,修改脚本如下: [pre] import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver;   public class test {   WebElement webElement = null; WebDriver driver = new ChromeDriver();   @BeforeTest public void open() { // 告诉系统chromedriver.exe的位置 System.setProperty("webdriver.chrome.driver","F:\\test\\chromedriver.exe"); driver.get("http://www.baidu.com"); driver.manage().window().maximize(); }   @Test(priority = 1) public void searchCSDN() throws InterruptedException { webElement = driver.findElement(By.xpath("//input[@id = \"kw\"]")); webElement.sendKeys("csdn"); webElement = driver.findElement(By.xpath("//*[@id=\"su\"]")); webElement.click(); Thread.sleep(3000); } } [/pre] 运行脚本,仍然报错,提示Cannot instantiate class helloworld.test img[https://newecode1024.oss-cn-hongkong.aliyuncs.com/9e8998ac-0768-48f5-a008-f467913dd32d.png]  百思不得其解啊,后面琢磨了好久,发现原因是下载下来的chromedriver.exe并不是随便放在哪个路径都可以,而是要放在chrome的安装目录下,如将chromedriver.exe放在D:\Program Files (x86)\Google\Chrome\Application下,这个时候,脚本中即使不添加 [pre] System.setProperty("webdriver.chrome.driver","D:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe"); [/pre] 都可以成功运行脚本。 So,最终正确运行的脚本如下: [pre] import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver;   public class test {   WebElement webElement = null; WebDriver driver = new ChromeDriver();   @BeforeTest public void open() { // 告诉系统chromedriver.exe的位置,可加可不加 System.setProperty("webdriver.chrome.driver","D:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe"); driver.get("http://www.baidu.com"); driver.manage().window().maximize(); }   @Test(priority = 1) public void searchCSDN() throws InterruptedException { webElement = driver.findElement(By.xpath("//input[@id = \"kw\"]")); webElement.sendKeys("csdn"); webElement = driver.findElement(By.xpath("//*[@id=\"su\"]")); webElement.click(); Thread.sleep(3000); } } [/pre]

上一篇: Firefox 64将支持Windows 10中的操作中心通知

下一篇: 使用python脚本自动更新发布生产环境代码

声明:本文所有观点仅代表创作者本人,ECode1024系信息收集发布平台,ECode1024仅提供信息存储以及展示服务。若有侵权,请联系我们删除。
回复
  • 暂无任何回复,抢个沙发吧~~
layui

微信扫码关注 ECode1024 公众号带给您更多优质内容