一、快捷鍵
alt+7? 查看本工程中的方法和屬性等
二、針對某一些頁面,鼠標(biāo)要移動(dòng)到上面,才能定位元素的,可以按F12,然后在console中輸入以下命令定住界面:
setTimeout(function(){debugger;},5000)
三、driver.implicitly_wait() 這個(gè)等待只是針對find系列的,周期性查找,每半秒查詢一次
四、webDriver對象的方法
driver.title? ?#獲取當(dāng)前窗口的title,需要sleep,因?yàn)榇蛴itle相當(dāng)于再次進(jìn)行瀏覽器請求這個(gè)請求要等待的和一開始打開瀏覽器不用等待不一樣;方法二:直接在獲取之前使用find獲取一個(gè)元素,使用driver.implicitly_wait() ,獲取到元素自然標(biāo)題也會(huì)找到了
driver.current_url? #獲取當(dāng)前窗口的地址欄的url
driver.get_screenshot_as_file('1.png')? #截圖,有bug的時(shí)候可以截圖,截圖名稱最好和測試用例同名稱
三、元素定位小技巧:點(diǎn)擊F12,右鍵可以copy
copy xpath? #復(fù)制出根據(jù)xpath定位的元素定位
copy selector#根據(jù)css定位
四、異常捕獲,保證瀏覽器就算在運(yùn)行錯(cuò)誤的時(shí)候也能安全退出
import traceback
try:
? ? ? #要運(yùn)行的代碼
? ? ? pass
except:
? ????print(traceback.format_exc())
finally:#一定會(huì)運(yùn)行
? ?driver.quit()? ? ?
五、特殊動(dòng)作(鼠標(biāo))
ActionChains類
form selenium.webdriver.common.action_chains import? ActionChains
acinstance.action1().action2().actionN().perform()#動(dòng)作鏈,調(diào)用perform方法才執(zhí)行
ActionChains(driver).move_to_element(ele).perform#把鼠標(biāo)停留在一個(gè)位置
eg:連續(xù)點(diǎn)擊三個(gè)輸入框輸入內(nèi)容
t1 = driver.find_element_by_id('t1')
t2 = driver.find_element_by_id('t2')
t3 = driver.find_element_by_id('t3')
ac.click(t1).send_keys('1').click(t2).send_keys('2').click(t3).send_keys('3').perform
六、改變窗口大小
size = driver.get_window_size()
driver.set_window_size(1100,size['height'])
七、滾動(dòng)頁面
driver.execute_script('window.scrollBy(1400,0)')? #橫向和豎向,向右移動(dòng)1400個(gè)像素,可以在console中進(jìn)行測試看效果(直接輸入window.scrollBy(1400,0)回車)