1. 元素的定位css
Selenium自动化,咱们须要作的最基本的事情就是在页面找到元素,并经过脚本程序去操做这个元素,实现模拟人操做。咱们有多种定位元素的方式能够选择:html
经过元素的ID定位元素:浏览器
findElement(By.id(element));spa
经过元素的名称定位元素:线程
findElement(By.name(element));3d
经过元素的html中的位置定位元素:调试
findElement(By.xpath(element));orm
经过元素的标签名称定位元素:htm
findElement(By.tagName(element));blog
经过元素的连接名称定位元素:
findElement(By.linkText(element));
经过元素的类名定位元素:
findElement(By.className(element));
经过元素的css定位元素:
findElement(By.cssSelector(element));
经过元素的部分连接名称定位元素:
findElement(By.partialLinkText(element));
2. 元素的操做
不一样的元素咱们进行不一样的操做,按钮的点击、输入框的字符输入、或者是元素的内容获取,不一样的元素咱们操做的方式不一。
对ID为element的元素进行点击操做:
driver.findElement(By.id(element)).click();
对ID为element的元素进行发送字符操做:
driver.findElement(By.id(element)).sendKeys(“XXXXXX”);
这是最简单的两例元素的操做,其实咱们还有许多的操做,能够去慢慢的探索脚本的实现方式,好比页面title的获取、浏览器标签的切换等等
如图,“关于oppo”元素在一个鼠标悬浮菜单下面,直接定位元素是定位不到的,这里则须要几部操做才能定位到元素, 须要用到Selenium提供的一个强大的用于真实的模拟用户交互的一个类:Actions
Actions action = new Actions(driver);
Tools tool=new Tools();
boolean flag=true;
driver.get("http://www.oppo.com/cn/");
//鼠标悬浮在品牌导航标签上面 action.moveToElement(driver.findElement(By.xpath("html/body/header/div[2]/div/div[2]/nav/div/ul/li[3]/a/span[1]"))).perform();
tool.ms(1000); driver.findElement(By.xpath("html/body/header/div[2]/div/div[2]/nav/div/ul/li[3]/ul/li[1]/a")).click();
tool.ms(1000);
代码中的tool.ms(1000);实际上是就是使用Thread.sleep(long millis); 使得当前线程休眠一1m,等待上一步骤响应完成。
Actions这个类提共了一系列的API供模拟交互:
keyDown : 用于模拟按键被按下
keyUp : 用于模拟按键松开
doubleClick : 用于模拟双击
clickAndHold : 用于模拟鼠标左键点住不放开
release : 用于模拟松开鼠标,与clickAndHold相配合
moveToElement : 将鼠标移动至元素的中间位置
contextClick : 模拟鼠标右键点击
dragAndDrop : 拖拽
3. 小结
元素操做的步骤:
步骤一: 肯定元素的定位方式(调试更改)
步骤二: By element=(By.xpath(“XX/XX”));
步骤三: WebElement fdelement= driver.findElement(element);
步骤四: fdelement.click();