selenium常見報錯及解決方案


一、TypeError:‘module’ object is not callable

  

  解決方案:谷歌瀏覽器Chrome單詞C大寫,修改為webdriver.Chrome()

 

 二、'chromedriver' executable needs to be in PATH.

  問題原因:沒有chrome驅動,需要先下載chrome驅動,然后添加到環境變量中

   解決方案:

  1、訪問http://chromedriver.storage.googleapis.com/index.html,找到自己瀏覽器對應版本的chromedriver.exe下載(版本一定要下載對

  2、下載下來的文件解壓后放在chrome瀏覽器所在目錄

 

  3、添加環境變量到PATH

 

注意:如果還是運行報錯,就在代碼中添加chromeDriver的路徑來檢測下版本是否正確:  

   如果直接添加路徑還報錯,就是驅動版本沒下載對;如果直接添加路徑正確,說明環境變量沒配置對

from selenium import webdriver

url = "http://www.baidu.com"
browser = webdriver.Chrome(executable_path="C:\\Users\\12717\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe")
browser.get(url)

 4、Selenium定位到元素點擊卻報錯:ElementClickInterceptedException:element click intercepted

  網上搜索到了2種方式,我用第一種方式解決了

  方式一:

  element = driver.find_element_by_xpath("表達式")

  driver.execute_script("arguments[0].click();", element)

  方式二:

  element = driver.find_element_by_xpath('表達式')

  webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()

element = self.driver.find_element_by_xpath(//button[@data-test-id="add"])
driver.execute_script("arguments[0].click();", element)

5、selenium使用clear()函數無法清空輸入框的內容

  使用.clear()無法清空輸入框的內容

  正常是我們在清除文本框內容的時候,都會使用 clear() 函數進行清除,但是有時候會出現,清除完成后再點擊查詢時,文本框的內容會再次自動填充,這個時候我們可以選擇以下方式:

  #清空查詢條件
  driver.find_element_by_id("FORM_NAME").send_keys(Keys.CONTROL, "a")
  driver.find_element_by_id("FORM_NAME").send_keys(Keys.DELETE)
  全選文本框內容,然后輸入刪除按鍵,問題解決!

6、下拉框是input封裝的,下拉框內容無法定位

  解決方案:先定位到input,然后輸入內容,通過操作鍵盤鍵選擇下拉框內容。

        element = self.driver.find_element_by_xpath(position)
        element.send_keys(Keys.CONTROL, 'a')
        element.send_keys(text)                          # 輸入內容
        element.send_keys(Keys.DOWN)               # 鍵盤下鍵
        element.send_keys(Keys.ENTER)               # enter鍵    

7、測試用例第一條總是執行失敗

  原因:登陸頁面和測試頁面之間未設置延遲;

  解決方案:在打開登陸頁面之后設置一個延遲,再打開測試頁面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM