Python3+Selenium UI自動化

Selenium UI自動化

1、安裝

1、安裝python3

2、下載selenium:pip install selenium == 3.12.0

3、下載Chrome:66.0.3359.139或Firefox

4、Firefox安裝插件:地址欄輸入about:addons;分別搜索Firebug和FirePath,并下載

瀏覽器驅動下載:https://www.seleniumhq.org/download/

chromedriver.exe

復制到python 安裝目錄~\Python37

HTMLTestRunner.py

復制到~\Python37\Lib

注意:文件名不能用 selenium

新建的名稱叫selenium.py,導致Python會先導入這個文件,然后再導入標準庫里面的selenium.py。

把當前目錄下的文件刪除或者重命名之后再run正常。

代碼:

```

# coding:utf-8

from selenium import webdriver import time

```

1、設置瀏覽器的驅動

driver = webdriver.Chrome()

2、去掉Chrome瀏覽器頂部的“正在受到自動測試軟件控制”:

option = webdriver.ChromeOptions() option.addargument('disable-infobars') driver = webdriver.Chrome(chromeoptions=option)

3、打開網址

driver.get("https://www.baidu.com/")

2、UI自動化操作

1、打開瀏覽器

設置瀏覽器的驅動

driver = webdriver.Chrome()

1、Chrome瀏覽器靜默模式:不彈出瀏覽器

option = webdriver.ChromeOptions()

option.addargument('headless') driver = webdriver.Chrome(chromeoptions=option)

2、去掉Chrome瀏覽器頂部的“正在受到自動測試軟件控制”:

option = webdriver.ChromeOptions()

option.addargument('disable-infobars') driver = webdriver.Chrome(chromeoptions=option)

driver = webdriver.Firefox()

2、進入論壇

driver.get("http://? ? ")

3、登錄

1、找到賬號和密碼輸入框

定位輸入框的位置

定位元素

1、用id定位:findelementby_id()

2、用classname定位:findelement_byclassname()

3、用鏈接文本定位:findelementbylinktext()

4、用部分鏈接文本定位:findelementby_partiallinktext()

5、用標簽名定位:findelementbytagname()---從沒用過

6、最常用:findelementby_xpath()

7、findelementbycssselector()

定位一組對象

與定位單個對象類似,只是要把element換成elements,如:findelementsbyclassname()【最常用】

2、點擊元素:.click()

3、輸入賬號和密碼

文本框輸入

1、清空輸入框默認文本:.clear()

2、.send_keys("自動化測試")

4、點擊登錄

登陸后有彈窗,為了確定正確登錄,需要斷言

1、普通彈出框獲取元素屬性

1、文本:.text

2、元素尺寸:.size

3、獲取其他屬性如class:.findelementbyid().getattribute("class")

4、元素是否可見:findelementbyid().isdisplayed()

若元素可見返回True,否則返回False

2、頁面彈出alert

alert = driver.switch_to.alert

查看alert中的文字

print alert.text

點擊確定

alert.accept()

點擊取消(如果有)

alert.dismiss()

3、獲取當前網頁信息

1、當前網頁url:driver.current_url

2、網頁標題:driver.title

4、頁面跳轉

1、如果在當前窗口跳轉,則無需其他操作

2、新開窗口則需要切換窗口:點擊某個元素以后會新開標簽頁,這時候需要切換窗口

allhandles = driver.windowhandles

currwindow = driver.currentwindowhandle for k in allhandles: if k != currwindow: driver.switchto.window(k)

5、點擊下拉頁面

頁面上下拉,要用js

1、下拉指定高度

js = 'document.documentElement.scrollTop=1000;'

driver.execute_script(js)

頂部:0

底部:把值寫大一點

2、用目標元素做參考去拖動下拉條

targetelement = driver.findelementbyid()

js = 'arguments[0].scrollIntoView();' driver.executescript(js, targetelement)

3、js操作補充

1、去掉新開標簽頁:target="_blank"屬性

js = 'document.getElementsByClassName("")[0].target="";'

driver.execute_script(js)

2、去掉只讀readonly屬性

js = 'document.getElementById("").removeAttribute("readonly")'

driver.execute_script(js)

6、鼠標移動到發帖后會彈出發帖選項

鼠標操作

導入鼠標操作庫:from selenium.webdriver.common.action_chains import ActionChains

1、右鍵單擊:context_click()

2、雙擊:double_click()

3、拖動:draganddrop()

4、鼠標懸停:movetoelement()

5、按下左鍵不松手:clickandhold()

鍵盤事件

導入鍵盤操作庫:from selenium.webdriver.common.keys import Keys

1、刪除backspace鍵:findelementby_id().sendkeys(Keys.BACKSPACE)

2、Ctrl+a:.send_keys(Keys.CONTROL, 'a')

3、回車:.send_keys(Keys.ENTER)

7、輸入帖子信息

1、定位iframe

iframe = driver.findelementby_xpath()

切換到iframe

driver.switch_to.frame(iframe) ...

跳出iframe

driver.switchto.defaultcontent()

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容