selenium 筆記 --- 常用操作【java】

一、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)景:單選框,下拉列表,復(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.comwww.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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容