Selenium 基本操作--元素定位

对页面元素进行操作

1.   输入框输入

driver.findElement(By.id("id号")).sendKeys(“输入框输入内容”);

例:

 

 

   driver.findElement(By.id("stadiumName")).sendKeys("测试场馆");

2.   输入框清除

driver.findElement(By.id("id号")).clear();

例:

 

  driver.findElement(By.id("username")).clear();

3.   超文本链接

driver.findElement(By.linkText(“”)).click();

 

 driver.findElement(By.linkText("已审核")).click();

4.   下拉选择框

首先new一个select对象后对其操作

new Select(driver.findElement(By.name("name"))). selectByVisibleText(“文本内容”);

例:

 NewSelect(driver.findElement(By.name("stadium[stadium_source]"))).selectByVisibleText("自营");

new Select(driver.findElement(By.name("name"))). selectByValue(“value值”) ;

 

例:

new Select(driver.findElement(By.name("stadium[stadium_source]"))). selectByValue("2");

若不选择对应的选项

new Select(driver.findElement(By.id("id号"))). deselectAll();所有都不选

new Select(driver.findElement(By.id("id号"))). deselectByValue( (“value值”) ;

new Select(driver.findElement(By.id("id号"))). deselectByVisibleText (“文本内容”);

5.   选择框

driver.findElement(By.name("name")).click();

 

driver.findElement(By.name("stadium[is_chain]")).click();

或使用xpth进行定位操作

 driver.findElement(By.xpath("(//input[@name='stadium[is_chain]'])[1]")).click();

 

6.   按钮

driver.findElement(By.id("save")).click();

 

 driver.findElement(By.id("save")).click();

 

7.   弹层

Alert alert = driver.switchTo().alert();

alert.getText();

alert.accept();     //确定按钮

alert.dismiss();    //取消按钮,二者二选其一

 

 Alert alert=driver.switchTo().alert();

   alert.getText();

alert.accept();

//alert.dismiss();

8.   上传图片

driver.findElement(By.id(“id号”)).sendKeys(“路径”);

 

 

driver.findElement(By.id("_toUploadFile")).sendKeys("C:\\Users\\Public\\Pictures\\Sample Pictures\\kala.jpg");

driver.findElement(By.id("upload")).click();

9.   导航

打开一个新页面

driver.navigate().to("http://www.baidu.com");

通过历史导航返回原页面:

driver.navigate().forward();

driver.navigate().back();

 

10. iframe切换

driver.switchTo().defaultContent();

 driver.switchTo().frame(“”);

 

 

 driver.switchTo().frame("uploadIframe");//切换至其他iframe

 driver.switchTo().defaultContent();

 driver.switchTo().frame("main")//进入main

11. 打印文本

括号中输入变量值

System.out.PrintIn()

 //弹层

   Alert alert=driver.switchTo().alert();

   alert.getText();

 System.out.println( alert.getText());//打印出的文件为“确认要审核通过吗?”

 

 

 

12. 设置随机变量

Int 变量值=(int)(Math.随机函数()*范围值);

 int x=(int)(Math.random()*100);//定义一个整型x变量,范围在100内

 driver.findElement(By.id("stadiumName")).sendKeys("测试"+x);变量名在引号外边

13. 使用cssSelector

通常情况下没有id,name时,通过cssSelector对type进行操作

    driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

 

 

 driver.findElement(By.cssSelector("input.save")).click();

14. 使用xpath

driver.findElement(By.xpath(“(//input[@name=’’])”[value值])).click();

 

 

driver.findElement(By.xpath("(//input[@name='is_book'])[2]")).click();

15. 超时等待

当登录系统成功后时间极短,若未设置时间等待,进入iframe进行操作会报错

隐示等待:

Driver.manege().timeouts().implicitlyWait(时间,TimeUnit.时间单位);

driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);

显示等待:

new WebDriverWait(driver,15).until(ExpectedConditions,presenceOfElementLocated(By.cssSelector(“等待元素变量名”)))

Thread.sleep(时间);//单位为毫秒

 

 

16. Text关键字

知道超链接元素的文本内容(为a元素)

driver.findElement(By.xpath(‘’(//a[contains(text(),’文本内容’)])[value]值’’)).click();

 

 driver.findElement(By.xpath("(//a[contains(text(),'关联商品')])[2]")).click();

 

总结:

1.最好将不同的模块写为不同的类,需用时调用即可,方便且避免出错,记得引用时要将被引用的类写为static

2.当页面元素有id属性时,最好引用id进行调用,但很多情况下无法查询id时这时再通过xpath或cssSelector进行定位

3.当页面有超文本链接时,考虑使用linkText进行定位

posted @ 2015-12-14 17:04  Zoeya  阅读(306)  评论(0编辑  收藏  举报