Selenium常见报错信息
jar、driver、浏览器版本(不要用最新的)、jdk版本 一致—》浏览器打不开,或者,不能输入地址
1、Cannot find firefox binary in PATH.
找不到ff路径
解决办法:
//如果ff浏览器没有安装在默认路径下,需要加下面这句话
System.setProperty("webdriver.firefox.bin",
"C:\\Program Files\\Mozilla Firefox\\firefox.exe");
//注意是 ff安装后的路径
2、org.openqa.selenium.SessionNotCreatedException: session not created:
This version of ChromeDriver only supports Chrome version 80
ChromeDriver版本错误
3、Exception in thread “main” java.lang.IllegalStateException: The driver executable does not exist: D:\demo\geckodriver1.exe
驱动的路径,获取驱动名称写错了
4、Exception in thread “main” java.lang.IllegalStateException: Specified firefox binary location does not exist or is not a real file:
C:\Program Files\Mozilla Firefox1\firefox.exe
5、Exception in thread “main” org.openqa.selenium.InvalidSelectorException:
这行识别元素的方式错误
6、org.openqa.selenium.NoSuchElementException
1)定位方式是不是写错了?
2)是不是页面还未加载完?加 Thread.sleep(3000);//等待浏览器加载
3)是否存在多个窗口,使用switchTo().window(s) 尝试切换窗口
4)是不是在子页面?例如iframe中,使用switchTo() 进行切换
5)是不是页面太长,移动滚动条试着向下(JS)
6)建议尝试用键盘鼠标事件(Div嵌套)
action.clickAndHold().moveByOffset(600, 200).release().perform();
7、手动点击是没有问题的,但是使用click(),没响应。建议使用JavascriptExecutor
JavascriptExecutor js=(JavascriptExecutor)driver;
driver.get(“http://localhost:8032/mymovie/”);
WebElement link_login=driver.findElement(By.linkText(“登录”));
js.executeScript(“arguments[0].click()”, link_login);
自动化测试 以分层模型开展
驱动进行 浏览器执行 驱动各大浏览器厂商开发
json wire protocol协议驱动
预备知识和技能
软件测试理论
HTML
CSS
Xpath
JavaIO\Apache poi \ JDBC
和硬件结合的就不大适合UI设置
UI测试基于图形、基于(HTML)DOM
Selenium环境搭建
selenium可以打开百度搜索知乎
2.3环境搭建
版本号,版本错了
geckodriver、要选择ff相对应的版本,看release
注意 浏览器打不开,或者浏览器能够打开网址driver.get(“https://www.baidu.com/”);
可能浏览器版本太高。
package Selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class MyMovie {
public static void main(String[] args) {
String url = "http://localhost:8032/mymovie/index.php/Login/";
//设置驱动
System.setProperty("webdriver.gecko.driver","D:\\demo\\geckodriver.exe");
//ff浏览器的安装后位置,如果是,默认安装路径,这句话可以省略
System.setProperty("webdriver.firefox.bin","D:\\app\\firefox.exe");
//
WebDriver driver = new FirefoxDriver();
driver.get(url);
//输入用户名
driver.findElement(By.name("username")).sendKeys("admin");
driver.findElement(By.name("password")).sendKeys("admin");
driver.findElement(By.name("password")).submit();
//driver.findElement(By.className("sub")).click();
}
}
package Selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Sleeper;
public class MyMovie {
public static void main(String[] args) throws InterruptedException {
String url = "http://localhost:8032/mymovie/index.php/Login/";
//设置驱动
System.setProperty("webdriver.gecko.driver","D:\\demo\\geckodriver.exe");
//ff浏览器的安装后位置,如果是,默认安装路径,这句话可以省略
System.setProperty("webdriver.firefox.bin","D:\\app\\firefox.exe");
//
WebDriver driver = new FirefoxDriver();
driver.get(url);
//输入用户名
driver.findElement(By.name("username")).sendKeys("admin");
driver.findElement(By.name("password")).sendKeys("123456");
driver.findElement(By.name("password")).submit();
Thread.sleep(1000);//没有的话会无法定位
driver.findElement(By.linkText("海上钢琴师")).click();
Thread.sleep(1000);
driver.findElement(By.name("message")).sendKeys("高昕2019012472自动化测试");
driver.findElement(By.id("message_button")).click();
}
}