一、selenium 動(dòng)作
1、瀏覽器窗口控制:
// 前置
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com"); // 打開指定頁面地址
// 窗口最大化
driver.manage().window().maximize()
// 指定窗口大小
Dimension arg0 = new Dimension(800, 480);
driver.manage().window().setSize(arg0);
// 模擬瀏覽器返回
driver.navigate().back();
// 同上一步意思相反
driver.navigate().forward();
// 模擬瀏覽器刷新
driver.navigate().refresh();
// 關(guān)閉瀏覽器
driver.quit();
2、常用元素操作:
方法 |
介紹 |
getText() |
獲取元素文本信息 |
sendKeys() |
輸入框 or 文本框內(nèi)容輸入 |
# sendKeys 示例:
driver.findElement(By.className("username")).sendKeys("helloword")祟滴;
clear() |
清除輸入框 or 文本框內(nèi)容 |
click() |
點(diǎn)擊 |
submit() |
提交,跟click類似 |
getAttribute() |
獲取某個(gè)屬性的值 |
# getAttribute()
# 源碼:
<html>
<body>
<input class="hello" type="text" placeholder="hello world !!!!"/>
</body>
</html>
# 示例:
String a = driver.findElement(By.className("hello")).getAttribute("placeholder");
System.out.println(a);
# 輸出:
hello world !!!!
getSize() |
獲取元素的 寬 高 |
getTagName() |
獲取屬性的標(biāo)簽名稱 |
driver.getTitle() |
獲取網(wǎng)頁title |
isDisplayed() |
判斷頁面元素是否存在 【 注:若元素存在返回 true 歌溉, 不存在會(huì)拋 NoSuchElementException 異常垄懂,表示找不到元素】 |
#還有一種判斷元素是否存在
WebElement element = driver.findElement(By.className("movable"));
// 判斷 element 不為 null
if (!ObjectUtils.isEmpty(element)){
System.out.println(element.getText());
}else {
System.out.println("元素不存在");
}
isEnabled() |
判斷元素是否可用 , 返回 true 和 false |
isSelected() |
判斷元素是否為選中狀態(tài) 痛垛,使用場(chǎng)景:?jiǎn)芜x框草慧,下拉列表,復(fù)選框等 |
3匙头、Actions 操作:
3.1漫谷、創(chuàng)建 Actions 對(duì)象:
Actions actions = new Actions(driver);
3.2、Actions 模擬鼠標(biāo)操作:
# 注意這里列出比較常用的action鼠標(biāo)操作
方法 |
介紹 |
actions.perform() |
所有動(dòng)作執(zhí)行操作蹂析,這個(gè)必須加舔示,不然actions不會(huì)執(zhí)行任何操作 |
actions.build() |
編譯構(gòu)建動(dòng)作碟婆,建議附帶 |
actions.click(WebElement target) |
鼠標(biāo)左鍵點(diǎn)擊指定元素 |
actions.contextClick(WebElement target) |
鼠標(biāo)右鍵點(diǎn)擊指定元素 |
actions.doubleClick(WebElement target) |
鼠標(biāo)雙擊指定的元素 |
actions.clickAndHold(WebElement element) |
鼠標(biāo)左鍵點(diǎn)擊不釋放,此動(dòng)作可以當(dāng)做鼠標(biāo)懸停使用 |
actions.dragAndDrop(source,target) |
鼠標(biāo)拖拽動(dòng)作惕稻,將 source 元素拖放到 target 元素的位置竖共。 |
actions.dragAndDrop(source,xOffset,yOffset) |
鼠標(biāo)拖拽動(dòng)作,將 source 元素拖放到 (xOffset, yOffset) 位置缩宜,其中 xOffset 為橫坐標(biāo)肘迎,yOffset 為縱坐標(biāo) 【注意:拖動(dòng)事件chrome好像不怎么支持】
|
actions.moveToElement(toElement) |
將鼠標(biāo)移到 toElement 元素中點(diǎn) |
actions.moveToElement(toElement,xOffset,yOffset) |
這里的 (xOffset, yOffset) 是以元素 toElement 的左上角為 (0,0) 開始的 (x, y) 坐標(biāo)軸。 |
actions.moveByOffset(xOffset,yOffset) |
以鼠標(biāo)當(dāng)前位置或者 (0,0) 為中心開始移動(dòng)到 (xOffset, yOffset) 坐標(biāo)軸 |
【注意: 這里需要注意锻煌,如果 xOffset 為負(fù)數(shù),表示橫坐標(biāo)向左移動(dòng)姻蚓,yOffset 為負(fù)數(shù)表示縱坐標(biāo)向上移動(dòng)宋梧。而且如果這兩個(gè)值大于當(dāng)前屏幕的大小,鼠標(biāo)只能移到屏幕最邊界的位置同時(shí)拋出 MoveTargetOutOfBoundsExecption 的異常狰挡∥媪洌】
actions.release() |
釋放鼠標(biāo) |
3.2、Actions 模擬鍵盤操作:
方法 |
介紹 |
action.keyDown(Keys.CONTROL) |
按下 Ctrl 鍵 |
action.keyDown(Keys.SHIFT) |
按下 Shift 鍵 |
action.keyDown(Key.ALT) |
按下 Alt 鍵 |
action.keyUp(Keys.CONTROL) |
釋放 Ctrl 鍵 |
action.keyUp(Keys.SHIFT) |
釋放 Shift 鍵 |
action.keyUp(Keys.ALT) |
釋放 Alt 鍵 |
說明:個(gè)人感覺鍵盤模擬操作用的不多加叁,所以不多做介紹倦沧,需要可 www.google.com 或 www.baidu.com查詢
4、selenium 界面截圖
# 主體:
((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
# 示例:
try {
//返回一個(gè)文件它匕,需要File接收
File file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
//時(shí)間格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//將突破copy到指定路徑下
FileUtils.copyFile(file, new File("D:\\IEDAProject\\img\\" + sdf.format(new Date()) + imgName + ".png"));
}catch (IOException io){
io.printStackTrace();
}
4展融、selenium操作vedio/audio元素
方法 |
介紹 |
addTextTrack() |
向音頻 or 視頻添加新的文本軌道 |
canPlayType() |
檢測(cè)瀏覽器是否能播放指定的音頻 or 視頻類型 |
load() |
重新加載音頻 or 視頻元素 |
play() |
開始播放音頻 or 視頻 |
pause() |
暫停當(dāng)前播放的音頻 or 視頻 |
# 示例
WebDriver driver = new ChromeDriver();
// 獲取視頻元素
WebElement element = driver.findElement(By.tagName("video"));
// 將driver 轉(zhuǎn)換為 javascript 類型
JavascriptExecutor jse = (JavascriptExecutor) driver;
// play() 開始播放
jse.executeScript("return arguments[0].play()" , element);
5、 selenium 操作滾動(dòng)條
- 5.1 豫柬、div內(nèi)的滾動(dòng)條操作
方法 |
描述 |
scrollHeight |
獲取滾動(dòng)條高度 |
scrollWidth |
獲取橫向滾動(dòng)條寬度 |
scrollLeft=1000 |
控制橫向滾動(dòng)條位置【1000是指位置的值告希,根據(jù)自己需求修改】 |
scrollTop=10000 |
控制縱向滾動(dòng)條位置【1000是指位置的值,根據(jù)自己需求修改】 |
//注意 scroll 是指所定位元素的名稱烧给,ByClassName 代表的是定位元素的類型
String js = "document.getElementsByClassName(\"scroll\")[0].scrollTop=10000";
// 下面的代碼有兩種寫法:
((JavascriptExecutor) driver).executeScript(js);
// or 根據(jù)自己習(xí)慣寫就好了
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript(js);
- 5.1 燕偶、 Actions 的 sendKeys() 來操作滾動(dòng)條
# 前置
Actions action = new Actions(driver);
// 向下滾動(dòng)致最底部
action.sendKeys(Keys.ARROW_DOWN)
.sendKeys(Keys.END)
.perform();
// 向上滾動(dòng)致最頂部
action.sendKeys(Keys.PAGE_UP)
.sendKeys(Keys.HOME)
.perform();
http://www.cnblogs.com/xinxin1994/category/1049549.html
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者