Selenium入门之元素的基本定位以及操做

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的获取、浏览器标签的切换等等

attachments-2016-07-bEAn3Sa4577cfa3eb9d3

如图,“关于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,等待上一步骤响应完成。

attachments-2016-07-o57Buo7V577cfa5783d1

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();

相关文章
相关标签/搜索