中山網(wǎng)站優(yōu)化關(guān)鍵詞排名優(yōu)化公司哪家強(qiáng)
掌握Selenium常用的API的使用
目錄
一、webdriver API
1.1元素的定位
1.2 id定位
1.3name 定位
1.4tag name 定位和class name 定位
1.5CSS 定位
1.6XPath 定位
1.7link text定位
1.8Partial link text 定位
二、操作測(cè)試對(duì)象
2.1鼠標(biāo)點(diǎn)擊與鍵盤(pán)輸入
2.2submit 提交表單
2.3text 獲取元素文本
2.4添加等待
2.4.1sleep休眠強(qiáng)制等待
2.4.2智能等待
2.4.2.1隱式等待
2.4.2.2顯式等待
2.5打印信息
2.6獲取元素對(duì)應(yīng)的屬性值
2.7瀏覽器的操作
2.7.1瀏覽器的前進(jìn)
2.7.2瀏覽器的后退
2.7.3瀏覽器滾動(dòng)條的操作
2.7.4瀏覽器最大化
2.8鍵盤(pán)事件
2.9鼠標(biāo)事件
2.10定位一組元素
2.11多層框架的定位
2.12下拉框的處理
2.13alert、confirm、prompt 的處理
2.14上傳文件的操作
三、補(bǔ)充操作
3.1關(guān)閉瀏覽器
3.2切換窗口
3.3截圖操作
一、webdriver API
public class Main {public static void main(String[] args) {ChromeOptions options=new ChromeOptions();//參數(shù)表示允許所有請(qǐng)求options.addArguments("--remote-allow-origins=*");WebDriver webDriver=new ChromeDriver(options);//.get表示打開(kāi)百度的首頁(yè)webDriver.get("https://baidu.com");}
}
1.1元素的定位
對(duì)象的定位應(yīng)該是自動(dòng)化測(cè)試的核心,要想操作一個(gè)對(duì)象,首先應(yīng)該識(shí)別這個(gè)對(duì)象。那么一個(gè)對(duì)象也有類(lèi)似的屬性,我們可以通過(guò)這些屬性找到這對(duì)象。(通過(guò)代碼找到要操作的元素)
webdriver 提供了一系列的對(duì)象定位方法,常用的有以下幾種
- id
- name
- class name
- link text
- partial link text
- tag name
- xpath
- css selector
我們可以看到,一個(gè)百度的輸入框,可以用這么多種方式去定位。
1.2 id定位
id是頁(yè)面元素的屬性,我們最常用元素定位方式,但是不是所有的元素都有id的。如果一個(gè)元素有id屬性,那么一般在整個(gè)頁(yè)面是唯一的。所以我們一般可以用id來(lái)唯一的定位到這個(gè)元素
通過(guò)前端工具,例如Chrome瀏覽器的F12,找到了百度輸入框的屬性信息,如下:
<input id="kw" class="s_ipt" type="text" maxlength="100" name="wd"
autocomplete="off">
屬性 id=”kw”通過(guò)find_element_by_id("kw") 函數(shù)就可以定位到百度輸入框
1.3name 定位
如果這個(gè)元素有name,并且元素的name命名在整個(gè)頁(yè)面是唯一的,那么我們可以用name來(lái)定位這個(gè)元素。用上面百度輸入框的例子,其中元素的屬性name=”wd”通過(guò)find_element_by_name("wd")函數(shù)同樣也可以定位到百度輸入框
1.4tag name 定位和class name 定位
從上面的百度輸入框的屬性信息中,我們看到,不單單只有id 和name 兩個(gè)屬性, 比如class 和tag
name(標(biāo)簽名)
input 就是一個(gè)標(biāo)簽的名字,可以通過(guò)find_element_by_tag_name("input") 函數(shù)來(lái)定位。
class="s_ipt",通過(guò)find_element_by_class_name("s_ipt")函數(shù)定位百度輸入框。
在這里要注意的是,不是所有的元素用 tag name或者 class name來(lái)定位元素,首先要保證該元素的這兩種屬性在頁(yè)面上是唯一的,才能夠準(zhǔn)確的定位。
1.5CSS 定位
CSS(Cascading Style Sheets)是一種語(yǔ)言,它被用來(lái)描述HTML 和XML 文檔的表現(xiàn)。
CSS 使用選擇器來(lái)為頁(yè)面元素綁定屬性。這些選擇器可以被selenium 用作另外的定位策略。
public class Main {public static void main(String[] args) {ChromeOptions options=new ChromeOptions();//參數(shù)表示允許所有請(qǐng)求options.addArguments("--remote-allow-origins=*");WebDriver webDriver=new ChromeDriver(options);//.get表示打開(kāi)百度的首頁(yè)webDriver.get("https://baidu.com");//定位元素:找到輸入框WebElement element &