已解決selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read properties of undefined (reading ‘style’)
報錯問題
粉絲群里面的一個小伙伴遇到問題跑來私信我,想用selenium調(diào)用js代碼,但是發(fā)生了報錯(當時他心里瞬間涼了一大截,跑來找我求助,然后順利幫助他解決了,順便記錄一下希望可以幫助到更多遇到這個bug不會解決的小伙伴),報錯代碼如下所示:
from selenium import webdriver
import time
# 創(chuàng)建瀏覽器對象
driver = webdriver.Chrome()
# 打開網(wǎng)頁
driver.get('http://www.xxx.com')
# 定位滑塊元素
slider = driver.find_element_by_xpath('//div[@class="slider"]')
# 獲取滑塊初始位置
start_x = slider.location['x']
# 計算滑塊需要移動的距離
distance = 300
# 構造拖動滑塊的JavaScript代碼
js = 'var drag=document.getElementsByClassName("slider")[0];\
drag.style.left="{}px";'.format(distance)
# 執(zhí)行JavaScript代碼,拖動滑塊到指定距離
driver.execute_script(js)
# 等待滑塊移動完成
time.sleep(2)
# 關閉瀏覽器
driver.quit()
報錯信息內(nèi)容截圖如下所示:
報錯翻譯
報錯信息內(nèi)容翻譯如下所示:
selenium.common.異常.Javascript異常:消息:javascript錯誤:無法讀取未定義的財產(chǎn)(讀取“style”)
報錯原因
這個報錯通常是因為JavaScript代碼中使用了未定義的變量或方法,導致無法讀取對應的屬性。要解決這個報錯,我們需要檢查JavaScript代碼中是否存在未定義的變量或方法,并進行修正。
下面是一些可能導致這個報錯的常見原因:
-
定位元素失?。喝绻贘avaScript代碼中使用了未成功定位到的元素對象,就會導致無法讀取元素的屬性,從而出現(xiàn)上述報錯。在使用JavaScript代碼前,需要先確保已成功定位到所需元素。
-
JavaScript代碼中存在語法錯誤:如果JavaScript代碼中存在語法錯誤,就會導致無法正確執(zhí)行代碼,從而出現(xiàn)上述報錯。需要仔細檢查代碼中是否存在語法錯誤,并進行修正。
-
未定義的變量或方法:如果JavaScript代碼中使用了未定義的變量或方法,就會導致無法讀取對應的屬性,從而出現(xiàn)上述報錯。需要確保JavaScript代碼中使用的變量和方法都已經(jīng)定義或引入。
如果以上方法都無法解決問題,可以嘗試將JavaScript代碼拆分為多個步驟,逐步調(diào)試并查找問題所在。另外,也可以嘗試在控制臺中手動執(zhí)行JavaScript代碼,查看是否存在問題。
解決方法
仔細觀察我們要拖動的滑塊名,可以看到因為粉絲復制別人的代碼但是沒有修改js中的className所以導致報錯:
修改代碼后運行成功:
以上是此問題報錯原因的解決方法,歡迎評論區(qū)留言討論是否能解決,如果有用歡迎點贊收藏文章謝謝支持,博主才有動力持續(xù)記錄遇到的問題?。。?/strong>
千人全棧VIP答疑群聯(lián)系博主幫忙解決報錯
由于博主時間精力有限,每天私信人數(shù)太多,沒辦法每個粉絲都及時回復,所以優(yōu)先回復VIP粉絲,可以通過訂閱限時9.9付費專欄《100天精通Python從入門到就業(yè)》進入千人全棧VIP答疑群,獲得優(yōu)先解答機會(代碼指導、遠程服務),白嫖80G學習資料大禮包,專欄訂閱地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
-
優(yōu)點:作者優(yōu)先解答機會(代碼指導、遠程服務),群里大佬眾多可以抱團取暖(大廠內(nèi)推機會),此專欄文章是專門針對零基礎和需要進階提升的同學所準備的一套完整教學,從0到100的不斷進階深入,后續(xù)還有實戰(zhàn)項目,輕松應對面試!
-
專欄福利:簡歷指導、招聘內(nèi)推、每周送實體書、80G全棧學習視頻、300本IT電子書:Python、Java、前端、大數(shù)據(jù)、數(shù)據(jù)庫、算法、爬蟲、數(shù)據(jù)分析、機器學習、面試題庫等等
-
注意:如果希望得到及時回復,和大佬們交流學習,訂閱專欄后私信博主進千人VIP答疑群
文章來源:http://www.zghlxwxcb.cn/news/detail-440915.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-440915.html
到了這里,關于已解決selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read properties的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!