日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python自动化操作应用程序错误_web自动化中踩过的低级错误坑(python+selenium)

發(fā)布時間:2025/3/12 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自动化操作应用程序错误_web自动化中踩过的低级错误坑(python+selenium) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.定位了元素沒有做下一步操作,比如,點(diǎn)擊、輸入等功能,而報(bào)錯,報(bào)錯信息如下:

2.上傳圖片時,定位元素,應(yīng)該定位input標(biāo)簽,點(diǎn)擊頁面input標(biāo)簽肉眼沒有看到定位到任何元素,以為無法成功,實(shí)際上只要有input標(biāo)簽被定位到是都可以上傳圖片的!

3.定義頁面基礎(chǔ)類時,初始化webdiver,傳參數(shù)的時候沒有對參數(shù)driver賦默認(rèn)None值,即一個默認(rèn)參數(shù),導(dǎo)致頁面報(bào)錯如下:

傳人默認(rèn)參數(shù),在調(diào)用self.main=Main()時,就可以不傳入?yún)?shù)了

class BasePage():

_base_url = ""

def __init__(self, driver: WebDriver = None):#就是因?yàn)檫@里沒有傳None!!??????

self._driver = None

if self._driver is None:

ops_chrome = webdriver.ChromeOptions()

ops_chrome.debugger_address = "127.0.0.1:9222"

self._driver = webdriver.Chrome(options=ops_chrome)

else:

self._driver = driver

if self._base_url != "":#這里的意思是如果_base_url不為空的話,就執(zhí)行跳轉(zhuǎn)到某個頁面,這個頁面的url其實(shí)是子類重寫了父類的類屬性

self._driver.get(self._base_url)

self._driver.implicitly_wait(5)

4. 有時候報(bào)錯有可能不是沒有定位到元素,而是時間太快,頁面沒有加載出來,這個時候可以加一個等待時間再試一下

5.封裝定位元素的方法,應(yīng)該將by和locate都傳進(jìn)去,使用起來更加靈活!

def find(self, by, locate):

return self._driver.find_element(by, locate)

6.在po設(shè)計(jì)模式中,所有的頁面都要繼承頁面基類(BasePage)

7.定位元素的時候,一定要和driver打開的頁面是一致的。今天用已登錄的頁面去定位百度頁面右上角的設(shè)置,發(fā)現(xiàn)老是提示頁面定位不到元素的錯誤,其實(shí)就是因?yàn)閐river打開的瀏覽器是沒有任何登錄信息的百度頁面,而我是去定位到的已登錄狀態(tài)的百度頁面,因此這兩個不是同一個頁面!!!以后定位元素,一定要記住這個坑,并不是這個元素沒有id屬性.

8.定位比如搜索設(shè)置中的懸浮窗時,打開控制臺中使用快捷鍵是定位不到的,需要選中要查看的元素,右鍵,點(diǎn)擊菜單中的檢查!!

9.如果沒有定位到某個元素的時候,可以打印driver.page_source,來判斷該元素是否在當(dāng)前頁面:

assert 's_btn_wr' in self.driver.page_source

總結(jié)

以上是生活随笔為你收集整理的python自动化操作应用程序错误_web自动化中踩过的低级错误坑(python+selenium)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。