python+selenium实现自动化:自动打开网页并实现刷新

selenium

一个 web 的自动化测试工具

免费且可以和各种语言结合,无论是 C、 java、ruby、python、 C# ,都可以通过 selenium 完成自动化测试

selenium+Python(Python3.5及以上版本)

1.安装selenium包

运行窗口执行:

pip install -i https://pypi.douban.com/simple selenium

等待完成。

2.启动浏览器

启动Chrome浏览器:

 webdriver.Chrome()

启动Firefox浏览器:

 webdriver.Firefox()

启动IE浏览器:

 webdriver.Ie()

以Chrome为例:

需要下载驱动chromedriver.exe,注意chromedriver的版本要与你使用的chrome版本对应,否则报错

下载地址☞http://npm.taobao.org/mirrors/chromedriver/

直接下载压缩包,在指定路径解压即可

简化版代码:

# coding = utf-8
import time
from selenium import webdriver

def refresh():
    driver = webdriver.Chrome("chromedriver.exe的路径")
    url = "http://……"  #网页地址
    driver.get(url)
    try:
        for i in range(10):
            time.sleep(1)
            driver.refresh()  #调用webdriver中刷新页面的方法
            print (i)  #记录刷新次数
    except Exception as e:
        print ("Exception found", format(e))
    driver.close()

if __name__ == "__main__":
  
    refresh()

启动报错:

Failed to read descriptor from node connection

解决方法:

在路径前加上resource_path或executable_path,如下

webdriver.Chrome(executable_path='C:\webdriver\chromedriver.exe') # to open the chromebrowser
        driver.get("https://web.whatsapp.com")

中途报错:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\jjF5.py", line 18, in
    refresh()
  File "C:\Users\Administrator\Desktop\jjF5.py", line 11, in refresh
    driver.refresh()
  File "E:\Anaconda\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 831, in refresh
    self.execute(Command.REFRESH)
  File "E:\Anaconda\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "E:\Anaconda\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 299.997
  (Session info: chrome=88.0.4324.104)

运行过程中偶尔会报超时异常,确定不是驱动版本和浏览器版本的问题,所以做了一个异常处理,把异常抛出。

还可以更换浏览器试试。

try:
    driver.get("https://web.whatsapp.com/")
except TimeoutException:
     # You can write retry code here

你可能感兴趣的:(Python,selenium,chrome,python,web,软件测试)