Selenium的自我总结2_元素基本操作
对于Selenium的基本元素的操作,就自己的了解做了一个基本的介绍,这篇直接上代码,针对一个页面如何操作写了些基本的操作脚本,希望对初学者有一定的帮助,也希望通过这些总结让自己有一些清晰的认识和了解:
Demo文件下载地址:http://pan.baidu.com/s/1sjECS5B
Demo 的样图:

Java Code:
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait; public class BasicUIExercise { WebDriver driver; public void openBrowser() { System.setProperty("webdriver.chrome.driver",
"E:\\JavaCodeWorkSpace\\JProject0610\\ChromeDriver\\chromedriver.exe"); driver = new ChromeDriver(); } // 退出所有浏览器
public void quitBrowser() { driver.quit(); } // 退出当前的单个浏览器
public void closeBrowser() { driver.close(); } public void goToTarget(String URL) { driver.navigate().to(URL);
driver.navigate().refresh();
// driver.get(URL); } public void backToTarget() { driver.navigate().back(); } public void waitTime() { driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } public void maxWindow() { driver.manage().window().maximize(); } // 拖动页面滚动条到最低部
public void executeJS(String script) { // String js = "var q=document.documentElement.scrollTop=10000";
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(script);
} public void testInput(String value) { WebElement element = driver.findElement(By
.xpath(".//*[@id='input']/input"));
// element.clear();
element.sendKeys(value);
String inputValue = element.getAttribute("value");
System.out.println(inputValue); } public void testClickLink() throws InterruptedException { WebElement element = driver.findElement(By.className("baidu"));
System.out.println("The Link is: " + element.getAttribute("href"));
element.click();
System.out.println("Current Page Title is:" + driver.getTitle());
Thread.sleep(3000); } public void testSelect(int index) { WebElement element = driver.findElement(By.name("select"));
Select select = new Select(element);
select.selectByIndex(index);
String selectText = select.getFirstSelectedOption().getText();
System.out.println("Curretn Select is: " + selectText); } public void testRadioBox(int index) { List<WebElement> elements = driver.findElements(By.name("identity"));
WebElement element = elements.get(index);
element.click();
boolean flag = element.isSelected();
getClass();
System.out.println("the radioBox is Select:" + flag); } public void testMultipleBox() { List<WebElement> elements = driver.findElements(By
.xpath(".//*[@id='checkbox']/input"));
for (WebElement element : elements) { element.click();
boolean flag = element.isSelected();
System.out.println("the CheckBox is select:" + flag); } } public void testBtn() { WebElement element = driver.findElement(By.className("button"));
element.click();
String btnText = element.getAttribute("value");
System.out.println(btnText); } public void testAlert() throws InterruptedException { WebElement element = driver.findElement(By
.xpath(".//*[@id='alert']/input"));
element.click();
Thread.sleep(1000);
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
System.out.println("ALert Text is:" + alertText);
alert.accept();
} // Selenium是无法识别Windows对话框的,所以在上传文件的过程中根据浏览器的不同,需要使用到AutoIT这个工具来获取Windows对话框实现上传的功能
public void testUploadFile(String filePath) { WebElement element = driver.findElement(By.id("load"));
element.sendKeys(filePath); } public void testOpneNewWindow() { WebElement element = driver.findElement(By.xpath(".//*[@id='open']/a"));
element.click(); String currentHandle = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles();
Iterator<String> iterators = handles.iterator();
while (iterators.hasNext()) { String handle = iterators.next();
if (!(currentHandle.equals(handle))) { driver.switchTo().window(handle);
System.out.println("testOpneNewWindow Current Web Title: "
+ driver.getTitle());
this.closeBrowser(); } }
driver.switchTo().window(currentHandle);
} // 将鼠标移动到该Btn下面,就会有对应的信息显示
public void testAction() { WebElement element = driver.findElement(By.className("over"));
Actions actions = new Actions(driver);
actions.moveToElement(element).build().perform();
String actionText = driver.findElement(By.id("over")).getText();
System.out.println("The Action Text is: " + actionText); } //testAction弹出的信息得首先处理掉,不然testElementDisplayedWait无法定位到当前的页面,聚焦点依然在testAction上面的信息上面
public void testActionJavaScript() {
JavascriptExecutor js2 = (JavascriptExecutor) driver;
js2.executeScript("alert('Hello Selenium Web Test!')");
Alert alert = driver.switchTo().alert();
String text = alert.getText();
System.out.println(text);
alert.accept();
} public void testElementDisplayedWait() { WebElement element = driver.findElement(By.className("wait"));
element.click();
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(new ExpectedCondition<Boolean>() { @Override
public Boolean apply(WebDriver driver2) { return driver2.findElement(By.className("red")).isDisplayed();
} });
System.out.println("The context is:"
+ driver.findElement(By.className("red")).getText()); } public static void main(String[] args) throws InterruptedException { BasicUIExercise bue = new BasicUIExercise();
bue.openBrowser();
bue.maxWindow();
bue.waitTime();
bue.goToTarget("E:\\JavaCodeWorkSpace\\JProject0610\\WebAddress\\demo2.html");
bue.testInput("Test WebDriver Study");
bue.testClickLink();
bue.backToTarget();
bue.testSelect(4);
bue.testRadioBox(5);
bue.testMultipleBox();
bue.testBtn();
bue.testAlert();
bue.executeJS("var q=document.documentElement.scrollTop=10000");
bue.testUploadFile("E:\\JavaCodeWorkSpace\\JProject0610\\WebAddress\\demo2.html");
bue.testOpneNewWindow();
bue.testAction();
bue.testActionJavaScript();
bue.testElementDisplayedWait();
Thread.sleep(1000);
bue.quitBrowser(); } }
Selenium的自我总结2_元素基本操作的更多相关文章
- 【python+selenium的web自动化】- 元素的常用操作详解(一)
如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 本篇主要内容:1.元素 ...
- java selenium (九) 常见web UI 元素操作 及API使用
本篇介绍我们如何利用selenium 来操作各种页面元素 阅读目录 链接(link) <div> <p>链接 link</p> <a href=" ...
- 关于selenium IDE找不到元素
selenium IDE ,明明存在元素,却找不到元素 ,报错Element not found 标签: seleniumselenium IDE自动化测试ide 2016-10-31 13:25 1 ...
- 关于selenium IDE找不到元素
selenium IDE ,明明存在元素,却找不到元素 ,报错Element not found 标签: seleniumselenium IDE自动化测试ide 2016-10-31 13:25 1 ...
- Selenium Web 自动化 - 如何找到元素
Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...
- Selenium Webdriver——操作隐藏的元素(二)display属性
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...
- Selenium Webdriver——操作隐藏的元素
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...
- Selenium with Python 003 - 页面元素定位
WebUI自动化,首先需要定位页面中待操作的元素,然后进行各种事件操作,这里我们首先介绍Selenium Python 如何定位页面元素,WebDriver 提供了一系列的方法. 定位单个页面元素(返 ...
- Selenium Webdriver——操作隐藏的元素display属性
有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...
随机推荐
- metamascara学习导论
研究了一段时间的metamascara终于有了一点起色,因为前段时间有一个小伙伴问了我一个问题,就是能不能将metamask嵌入到自己设计的网站中,在自己要进行交易的时候也会弹出一个页面来让用户确认这 ...
- <数据结构与算法分析>读书笔记--运行时间计算
有几种方法估计一个程序的运行时间.前面的表是凭经验得到的(可以参考:<数据结构与算法分析>读书笔记--要分析的问题) 如果认为两个程序花费大致相同的时间,要确定哪个程序更快的最好方法很可能 ...
- Python基础(3)if_else、for、while、break与continue
1.if ... else a=6 if a>=5: print("The a is bigger than 5") else: print("The a is s ...
- Luogu P2661 信息传递
传送门 一眼就能看出来是个并查集 但是并不会写... 看了一下题解说是并查集求最小环qwq 所以,每次加入第i个小同学,判断如果他要告诉的小同学k最后会告诉他(也就是转回来了), 就说明出现了一个环, ...
- Linux命令——head/tail
一.head head主要是用来显示档案的开头至标准输出中,默认打印相应文件的开头10 行. 1)命令格式 head [参数] [文件] 2)常用参数 -q 隐藏文件名-v 显示文件名 ...
- android 给LinearLayout中添加一定数量的控件,并让着一定数量的控件从右到左移动,每隔若干秒停顿一下,最后一个view链接第一个view,然后继续移动循环往复,形成一个死循环简单动画效果
主类:IndexAnimationLinearLayout.java package com.yw.sortlistview; import java.util.ArrayList; import j ...
- SkylineGlobe 如何二次开发实现天际线分析功能
天际线效果: 示例代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <h ...
- 不存在具有键“xxxId”的“IEnumerable<SelectListItem>”类型的 ViewData 项
项目中的某个页面,在访问时出现以下错误: 不存在具有键“xxxId”的“IEnumerable<SelectListItem>”类型的 ViewData 项 具体的场景说明如下: 一个编辑 ...
- flask seesion组件
一.简介 flask中session组件可分为内置的session组件还有第三方flask-session组件,内置的session组件功能单一,而第三方的flask-sessoin可支持re ...
- linux 硬盘挂载
#df -h(查看分区情况及数据盘名称) # mkdir /data(如果没有data目录就创建,否则此步跳过) # umount /home(卸载硬盘已挂载的home目录) # mount /dev ...