簡體   English   中英

urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=49951): 使用 Selenium 和 Python 超過 url 的最大重試次數

[英]urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=49951): Max retries exceeded with url with Selenium and Python

我不知道如何點擊這個按鈕。 它具有諸如圖像和文本之類的標識符,但我不確定如何利用這些標識符。

我試過使用 XPATH,我試過使用文本,我試過使用圖像的鏈接,但我不能讓它工作

我的代碼:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Continue Watching"))).click()

按鈕 HTML:

<button style="margin-top: 15px;
            width: 240px;
            height: 46px;
            background-color: #69b8d6;
            margin: 50px auto;
            border-radius: 4px;
            color: white;
            display: block;
            margin-left: 159px;
            font-size: 16px;"><img style="padding-right:15px;" src="http://img.encrave.tv/global/watchCamcorder.png">Continue Watching</button>

如果這個按鈕 html 變成一個實際的按鈕,我很抱歉,我不確定如何處理。

我的預期結果是“查找並等待按鈕可點擊”。 然后單擊它。 我的實際結果是沒有任何反應,控制台中彈出一個錯誤。

引發 MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=49951): 最大重試次數超過 url: /session/4100d1e939db4a44f289a50f5eelement (Cause) NewConnectionError(': 建立新連接失敗: [WinError 10061] 無法建立連接,因為目標機器主動拒絕它'))

對我來說,我在元素可以通信之前殺死了驅動程序實例。 因此,如果您的代碼在 config/setup 中的某處沒有發生這種情況,請確認一次。

那么你試圖通過 LINK_TEXT 找到它,而不是一個鏈接

可以試試這個By.xpath("//*[text()='Continue Watching']"

要在所需元素上click() ,您必須為element_to_be_clickable()引入WebDriverWait ,您可以使用以下任一解決方案:

  • 使用CSS_SELECTOR

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button>img[src*='tv/global/watchCamcorder']"))).click()
  • 使用XPATH

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[normalize-space() = 'Continue Watching']"))).click()
  • 注意:您必須添加以下導入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

PS :但是,您看到的錯誤No connection could be made because the target machine active denied it is 由於其他一些原因,您可以在MaxRetryError: HTTPConnectionPool: Max retries exceeded (Caused by ProtocolError('Connection) 中找到詳細討論中止。',錯誤(111,'連接被拒絕')))

我遇到了類似的錯誤,但后來我意識到我在拆卸過程中關閉了驅動程序,並且在嘗試刪除 cookie 之后……並且正在發送錯誤。

我的建議是查看您的代碼並驗證您是否在某些指令中關閉了驅動程序。

還有一個建議是點擊按鈕后進入睡眠狀態。

如果可能的話,嘗試對元素進行高亮顯示在這種情況下非常有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM