2018-12-13元素基本操作
2018-12-13 本文已影响0人
雁_9587
image.png
image.png
image.png
**
- @program: ghy
- @description:
- @author: guoya
- @create: 2018-12-13 10:09
输入框
@Test
public void testTextInput(){
//打开网址
driver.get("https://www.taobao.com/");
//定位页面元素
WebElement text=driver.findElement(By.xpath("//input[@id=\"q\"]"));
//清空输入框
text.clear();
//往输入框中填值
text.sendKeys("美食");
//等待2秒
sleep(2);
点击类型
public void testButton(){
testTextInput();
//定位页面元素
WebElement button=driver.findElement(By.xpath("//button[contains(text(),'搜索')]"));
//点击
click(button);
button.click();
//等待2秒
sleep(2);
}
超链接
public void testLink(){
//打开网址
driver.get("https://www.taobao.com/");
//定位页面元素
WebElement link =driver.findElement(By.xpath("//li[@aria-label=\"查看更多\"]/a[contains(text(),'女装')]"));
//点击
//link,click();
// ctrl+点击
//新建一个Actions类的实例
// Actions actions =new Actions(driver);
//操作
//actions.keyDown(Keys.CONTROL).click(link).keyUp(Keys.CONTROL).perform();
//shift + 点击
//1.在代码里Actions封装了鼠标的所有操作,使用这个类我们需要新建一个实例,所以new新建并取名为actions
Actions actions = new Actions(driver);
//鼠标这个变量叫actions我们的操作有1.按shift,点击超链接hera在鼠标回弹shift,之后再展现
actions.keyDown(Keys.SHIFT).click(link).perform();
//等待2秒
sleep(2);
}
ctrl + 点击
//定位页面元素
WebElement link = driver.findElement(By.xpath("//li[@aria-label=\"查看更多\"]/a[contains(text(),'女装')]"));
//新建一个Actions类的实例
Actions actions = new Actions(driver);
//操作
actions.keyDown(Keys.CONTROL).click(link).keyUp(Keys.CONTROL).perform();
shift + 点击
//定位页面元素
WebElement link = driver.findElement(By.xpath("//li[@aria-label=\"查看更多\"]/a[contains(text(),'女装')]"));
Actions actions = new Actions(driver);
actions.keyDown(Keys.SHIFT).click(link).keyUp(Keys.SHIFT).perform();
下拉框
image.png public void testelect(){
//打开网址
driver.get("file:///C:/Users/guoya/Documents/WeChat%20Files/wxid_nbubxf9aloyq22/Files/demo(1).html");
// driver.findElement这里是xpath轴定位元素
WebElement select =driver.findElement(By.xpath("//select"));
//对这个selects的操作
//1.对于下拉框的操作封装在Select这个类里,我们需要先new一个实例,这里取名为selects
Select selects = new Select(select);
//通过展现文本来选,通过香蕉来选
selects.selectByVisibleText("香蕉");
//等待2秒
sleep(2);
//2.下拉框有多个选项,这里我们是通过selectByIndex(下拉框的序号)代码0代表第一个
selects.selectByIndex(0);
//等待2秒
sleep(2);
//这里我们是通过selectByVisibleText(下拉框的文本域)下拉框有橘子
selects.selectByVisibleTest("橘子");
//等待2秒
sleep(2);
//通过select这个下拉框查看源代码,通过Value的值去选择
select2.selectByValue("chengzi");
sleep(2);
}
下拉框
- 1.按展现文本选择
①//定位元素
②WebElement select = driver.findElement(By.xpath("//select"));
③Select selects = new Select(select);
④selects.selectByVisibleText("香蕉"); - 2.按序号选择
①//定位元素
②WebElement select = driver.findElement(By.xpath("//select"));
③Select selects = new Select(select);
④selects.selectByIndex(0); - 3.按value的值选择
①//定位元素
②WebElement select = driver.findElement(By.xpath("//select"));
③Select selects = new Select(select);
④selects.selectByValue("juzi");
日期控件
//日期控件
public void testeDate(){
//driver.get打开网页
driver.get("file:///C:/Users/guoya/Documents/WeChat%20Files/wxid_nbubxf9aloyq22/Files/demo(1).html");
//WebElement date = driver.findElement(By.xpath(//input[@type='date']));
//date.clear();
//date.sendKeys("2018-12-13")
//是把js代码存起来
String js = "var xpath = \"//input[@type='date']\";var element = document.evaluate(xpath,document,null,XPathResult.ANY_TYPE,null).iterateNext();element.value=\"2018-12-13\";";
//强制转化js代码driver告诉程序那个浏览器的代码
JavascriptExecutor jsDriver = (JavascriptExecutor)driver;
//将jsdrver里面的代码解析(executeScript,脚本,(js)代码)
jsDriver.executeScript(js);
//等待2秒
sleep(2);
}
先在console中写js代码
①//声明一个变量,并把xpath语句存放在变量中
②var xpath="//input[@type='date']";
③//使用xpath定位元素,并把定位结果取出来放到一个变量中
④var element = document.evaluate(xpath,document,null,XPathResult.ANY_TYPE,null).iterateNext();
⑤//修改value属性的值
⑥element.value="2018-12-31";
image.png
image.png
如何操作value以外的属性
-
1.修改其他属性的值
①//修改其他属性的值
②element.setAttribute("type","text");
image.png -
2.删除其他属性
①//删除时间控件的只读属性
②element.removeAttribute("readonly");
image.png
在java中执行js代码
①//把javaScript代码存入一个变量中
②String js = "var xpath = "//input[@type='date']";var element = document.evaluate(xpath,document,null,XPathResult.ANY_TYPE,null).iterateNext();element.removeAttribute("readonly");element.value='2018-12-13';";
③//强制类型转换,把driver强制转换为可以执行js代码的driver
④JavascriptExecutor jsDriver = (JavascriptExecutor)driver;
⑤//使用executeScript()方法执行js代码
⑥jsDriver.executeScript(js);
时间控件
//时间控件
public void testetime(){
// driver.get打开网页
driver.get("file:///C:/Users/guoya/Documents/WeChat%20Files/wxid_nbubxf9aloyq22/Files/demo(1).html");
//WebElement time = driver.findElement(By.xpath(//input[@type='time']));
//time.clear();
//date.sendKeys("11:00");
//是把js代码存起来
String js = "var xpath = \"//input[@type='time']\";var element = document.evaluate(xpath,document,null,XPathResult.ANY_TYPE,null).iterateNext();element.value=\"11:00\";";
//强制转化js代码driver告诉程序那个浏览器的代码
JavascriptExecutor jsDriver = (JavascriptExecutor)driver;
//将jsdrver里面的代码解析(executeScript,脚本,(js)代码)
jsDriver.executeScript(js);
//等待2秒
sleep(2);
}
image.png
操作导航栏
public void testNavigate() {
//打开百度
driver.get("https://www.taobao.com/");
//等待2秒
sleep(2);
//打开天猫
driver.get("https://www.tmall.com/");
//等待2秒
sleep(2);
//后退
driver.navigate().back();
//等待2秒
sleep(2);
//前进
driver.navigate().forward();
//等待2秒
sleep(2);
//刷新
driver.navigate().refresh();
//等待2秒
sleep(2);
//打开网址
driver.navigate().to("https://www.taobao.com/");
//等待2秒
sleep(2);
}