博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium操作页面元素
阅读量:5892 次
发布时间:2019-06-19

本文共 4926 字,大约阅读时间需要 16 分钟。

转自:http://blog.sina.com.cn/s/blog_6966650401012a7q.html

 

一、输入框(text field or textarea)

//找到输入框元素:WebElement element = driver.findElement(By.id("passwd-id"));//将输入框清空:element.clear();//在输入框中输入内容:element.sendKeys(“test”);//获取输入框的文本内容:element.getText();

 

二、下拉选择框(Select)

//找到下拉选择框的元素:Select select = new Select(driver.findElement(By.id("select"))); //选择对应的选择项:select.selectByVisibleText(“mediaAgencyA”);或select.selectByValue(“MA_ID_001”); //不选择对应的选择项:select.deselectAll();select.deselectByValue(“MA_ID_001”);select.deselectByVisibleText(“mediaAgencyA”);或者获取选择项的值:select.getAllSelectedOptions();select.getFirstSelectedOption();

 

对下拉框进行操作时首先要定位到这个下拉框,new 一个Selcet对象,然后对它进行操作

例如:
以http://passport.51.com/reg2.5p这个页面为例。这个页面中有4个下拉框,下面演示4种选中下拉框选项的方法。

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.Select;public class SelectsStudy {    public static void main(String[] args) {        System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe");         WebDriver dr = new FirefoxDriver();        dr.get("http://passport.51.com/reg2.5p");               //通过下拉列表中选项的索引选中第二项,即2011年        Select selectAge = new Select(dr.findElement(By.id("User_Age")));        selectAge.selectByIndex(2);//Select.selectByIndex               //通过下拉列表中的选项的value属性选中"上海"这一项        Select selectShen = new Select(dr.findElement(By.id("User_Shen")));        selectShen.selectByValue("上海");//Select.selectByValue               //通过下拉列表中选项的可见文本选中"浦东"这一项        Select selectTown = new Select(dr.findElement(By.id("User_Town")));        selectTown.selectByVisibleText("浦东");Select.selectByVisibleText               //这里只是想遍历一下下拉列表所有选项,用click进行选中选项        Select selectCity = new Select(dr.findElement(By.id("User_City")));        for(WebElement e : selectCity.getOptions())//Select.getOptions()            e.click();    }}

 

三、单选项(Radio Button)

//找到单选框元素:WebElement bookMode =driver.findElement(By.id("BookMode"));//选择某个单选项:bookMode.click();//清空某个单选项:bookMode.clear();//判断某个单选项是否已经被选择:bookMode.isSelected();

 

四、多选项(checkbox)

//多选项的操作和单选的差不多:WebElement checkbox =driver.findElement(By.id("myCheckbox."));checkbox.click();checkbox.clear();checkbox.isSelected();checkbox.isEnabled();

 

五、按钮(button)

//找到按钮元素:WebElement saveButton = driver.findElement(By.id("save"));//点击按钮:saveButton.click();//判断按钮是否enable:saveButton.isEnabled ();

 

六、左右选择框

也就是左边是可供选择项,选择后移动到右边的框中,反之亦然。
例如:

Select lang = new Select(driver.findElement(By.id("languages")));lang.selectByVisibleText(“English”);WebElement addLanguage =driver.findElement(By.id("addButton"));addLanguage.click();

 

七、弹出对话框(Popup dialogs)

Alert alert = driver.switchTo().alert();alert.accept();alert.dismiss();alert.getText();

 

八、表单(Form)

Form中的元素的操作和其它的元素操作一样,对元素操作完成后对表单的提交可以:

WebElement approve = driver.findElement(By.id("approve"));approve.click();或approve.submit();//只适合于表单的提交

 

九、上传文件 (Upload File)

上传文件的元素操作:

WebElement adFileUpload = driver.findElement(By.id("WAP-upload"));String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";adFileUpload.sendKeys(filePath);

 

十、拖拉(Drag andDrop)

WebElement element =driver.findElement(By.name("source"));WebElement target = driver.findElement(By.name("target"));(new Actions(driver)).dragAndDrop(element, target).perform();

 

例如:下面这个页面是一个演示拖放元素的页面,你可以把左右页面中的条目拖放到右边的div框中。

http://koyoz.com/demo/html/drag-drop/drag-drop.htmlimport org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Actions;public class DragAndDrop {    public static void main(String[] args) {        System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe");         WebDriver dr = new FirefoxDriver();        dr.get("http://koyoz.com/demo/html/drag-drop/drag-drop.html");               //首先new出要拖入的页面元素对象和目标对象,然后进行拖入。        WebElement  element = dr.findElement(By.id("item1"));        WebElement  target = dr.findElement(By.id("drop"));        (new Actions(dr)).dragAndDrop(element, target).perform();               //利用循环把其它item也拖入        String id="item" ;        for(int i=2;i<=6;i++){            String item = id+i;            (new Actions(dr)).dragAndDrop(dr.findElement(By.id(item)), target).perform();        }    }}

代码很简单,需要注意的是(new Actions(dr)).dragAndDrop(element, target).perform();这句话中,dragAndDrop(element, target)这个方法是定义了“点击element元素对象,然后保持住,直到拖到目标元素对象里面才松开”这一系列动作的Actions,如果你不调用perform()方法,这个Actions是不会执行的。

十一、导航 (Navigationand History)

//打开一个新的页面:driver.navigate().to("http://www.example.com");//通过历史导航返回原页面:driver.navigate().forward();driver.navigate().back();

 

十二、获取页面CSS属性
1.获取文字颜色dr.findElement(By.id("tooltip")).getCssValue("color")2.获取文字字号dr.findElement(By.tagName("h3")).getCssValue("font")

转载于:https://www.cnblogs.com/baby0814/p/4536309.html

你可能感兴趣的文章
在ABAP里取得一个数据库表记录数的两种方法
查看>>
数据结构-顺序循环队列
查看>>
ECMAScript 6入门读书笔记一
查看>>
UML顺序图(sequence diagram)
查看>>
[LeetCode]合并K个排序链表(Merge k Sorted Lists)
查看>>
APICloud分享图片到微信
查看>>
https证书 websocket配置
查看>>
angularjs初识
查看>>
《JavaScript模式》读书笔记(二)字面量和构造函数
查看>>
带你实现一个 JSONP 实例
查看>>
学校 -> 实习 -> 毕业,前端——我一直在路上
查看>>
Java反射-Getters and Setters
查看>>
ImmutableMap不可使用null的问题
查看>>
01背包问题 (动态规划算法)
查看>>
C#实体对象序列化成Json,并让字段的首字母小写
查看>>
遍历PHP数组的6种方式
查看>>
重构-改善既有代码的设计(一)--重构,第一个案例
查看>>
MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发
查看>>
块级格式化上下文(BFC)
查看>>
[LintCode] Buy Fruits
查看>>