Selenium:urllib3.exceptions.MaxRetryError:HTTPConnectionPool错误

问题描述 投票:0回答:2

我现在正在学习 Python 上的 QA 自动化,在尝试启动第一个也是最简单的代码时遇到了该错误。我尝试了几种不同的方法,但都行不通。我尝试关闭我的 VPN,我的互联网连接良好,我更新了所有 python 库。

我在 Windows 11 Home 上使用 Python 3.10、pytest 7.1.3、pytest-selenium 4.0.0、selenium 4.4.3、Pycharm 2022.2.2。

这是我尝试启动的代码。错误发生在谷歌页面打开后,它不会在搜索字段中输入测试文本,然后 urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=63146): 发生错误。

import time
from selenium import webdriver

driver = webdriver.Chrome()


def test_search_example(selenium):
    """ Search some phrase in google and make a screenshot of the page. """

    # Open google search page:
    selenium.get('https://google.com')

    # time.sleep(5)  

    # Find the field for search text input:
    search_input = driver.find_element("name", "q")

    # Enter the text for search:
    search_input.clear()
    search_input.send_keys('first test')

    time.sleep(5) 

    # Click Search:
    search_button = driver.find_element("name", "btnK")
    search_button.click()

    time.sleep(10)  

    # Make the screenshot of browser window:
    selenium.save_screenshot('result.png')

driver.quit()
python selenium-webdriver automated-tests webdriver pytest
2个回答
1
投票

您似乎将

selenium
中的
pytest-selenium
与您独立旋转的
driver
混合在一起。

请注意,您已使用

selenium
var:

导航至 URL
selenium.get('https://google.com')

但是随后您使用

driver
var:

执行了一个操作
search_input = driver.find_element("name", "q")
search_button = driver.find_element("name", "btnK")

因此将

find_element
行更改为:

search_input = selenium.find_element("name", "q")
# and this line:
search_button = selenium.find_element("name", "btnK")

然后删除所有其他包含

driver
的行:

### Remove these lines:
# from selenium import webdriver
# driver = webdriver.Chrome()
# driver.quit()

...然后使用

pytest
运行,以便它使用
selenium
中的
pytest-selenium
夹具来执行所有硒操作。


0
投票

您的代码有一个问题。

你创建了这个函数

test_search_example()
但你从未调用过它。

这应该可以解决问题:

import time
from selenium import webdriver

def test_search_example():
    driver = webdriver.Chrome()
    # Open google search page:
    driver.get('https://google.com')

    time.sleep(5)  

    # Find the field for search text input:
    search_input = driver.find_element("name", "q")

    # Enter the text for search:
    search_input.clear()
    search_input.send_keys('first test')

    time.sleep(5) 

    # Click Search:
    search_button = driver.find_element("name", "btnK")
    search_button.click()

    time.sleep(10)  

    # Make the screenshot of browser window:
    driver.save_screenshot('result.png')

    driver.quit()
    
test_search_example()
© www.soinside.com 2019 - 2024. All rights reserved.