python selenium高级教程_selenium(python)教程

Updated on Aug-11-2019

今天再试了一下,发现自己的chrome安装路径变成“C:\Users\Kevin\AppData\Local\Google\Chrome\Application”这个了。

然后将安装路径改成这个,又报如下错误:

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in positio

n 2-3: truncated \UXXXXXXXX escape

将代码改成下面这样就可以了:

driver = webdriver.Chrome(executable_path='C:\\Users\\Kevin\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe')

然后又报错,说chrome版本必须为70-73之间,我的已经是76了。

selenium.common.exceptions.SessionNotCreatedException: Message: session not crea

ted: Chrome version must be between 70 and 73

(Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65af

e72),platform=Windows NT 6.1.7601 SP1 x86_64)

所以又重新下载了chromedriver.exe进行替换,终于好了

--------------------------------------------------------------------------------------

今天试用了一下selenium。

一、首先通过pip命令安装,非常顺利。

二、然后执行py文件的时候,出现下面的错误提示:

Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://s

ites.google.com/a/chromium.org/chromedriver/home

三、下载chromedriver

淘宝镜像:http://npm.taobao.org/mirrors/chromedriver/

注意 :下载的时候一定要注意版本,因为chromedriver的版本要与你使用的chrome版本对应才能使用。

chromedriver版本

支持的Chrome版本

v2.33

v60-62

v2.32

v59-61

v2.31

v58-60

v2.30

v58-60

v2.29

v56-58

v2.28

v55-57

v2.27

v54-56

v2.26

v53-55

v2.25

v53-55

v2.24

v52-54

v2.23

v51-53

v2.22

v49-52

v2.21

v46-50

v2.20

v43-48

v2.19

v43-47

v2.18

v43-46

v2.17

v42-43

v2.13

v42-45

v2.15

v40-43

v2.14

v39-42

v2.13

v38-41

v2.12

v36-40

v2.11

v36-40

v2.10

v33-36

v2.9

v31-34

v2.8

v30-33

v2.7

v30-33

v2.6

v29-32

v2.5

v29-32

v2.4

v29-32

四、配置

将chromedriver.exe这个文件放到chrome的安装目录下,比如我的电脑就是:C:\Program Files (x86)\Google\Chrome\Application

然后右键单击我的电脑,在弹开的菜单中选中“属性功能,在弹出的菜单中选择”高级系统设置”->环境变量。

修改path,在最后面添加 ;C:\Program Files (x86)\Google\Chrome\Application

五、解决

我按上面的方法配置之后,还是显示:

Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://s

ites.google.com/a/chromium.org/chromedriver/home

又尝试了将chromedriver.exe得到到python.exe所在目录,复制到anaconda下面的script目录,得到到要执行的py文件所在的目录都不行。

后来看到有人说,其实在环境变量设置完PATH重启就行了,或者在代码中写成:

driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")

就可以了,我一看,源代码直接写成了:

driver = webdriver.Chrome("C:\chromedriver.exe")

难怪出错了,改了这行代码之后,终于chrome运行正常了。

六、测试

我们在一个py文件中输入以下代码,并执行。

from selenium import webdriver

browser = webdriver.Chrome() #如果只有前面两行,则打开一个空白浏览器

browser.get("http://www.baidu.com")

print(browser.page_source)

browser.close()

就会打开baidu.com网站。

七、Mar.30.2019更新

今天想再一次使用selenium+chrome的时候,出现了问题,按上面的步骤操作,可是还是老是出现如下错误:

selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' execu

table needs to be in PATH. Please see https://sites.google.com/a/chromium.org/ch

romedriver/home

解决方案:

将chromedriver.exe这个文件放到python的根目录下,比如,我用的是Anaconda,那么就放到:C:\ProgramData\Anaconda3 这下面。

然后再测试代码,终于成功了。

Updated on May-18-2020

其实不需要设置 sys path,只需要将chromedriver放到程序所在的文件夹下面就可以了。

五、开发快排笔记

from selenium.webdriver import Chrome

from selenium.webdriver import ChromeOptions

option = ChromeOptions()

option.add_experimental_option('excludeSwitches', ['enable-automation'])

driver = Chrome(options=option)

其他代码(不知何原因,换ua,resolution测试不成功。

import random

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.common.action_chains import ActionChains

# from bs4 import Beautifulsoup

from selenium.webdriver.common.keys import Keys

from selenium.common.exceptions import TimeoutException

# url ="https://www.bejson.com/httputil/clientinfo/"

url = "http://www.gongjuji.net/browser/screen/"

def get_random_resolution():

resolution = random.choice([i.replace('\n','').split('*') for i in open('resolution.txt').readlines()])

return resolution

def get_random_ua():

a = [i.replace('\n','').strip() for i in open('ua.txt').readlines()]

ua = random.choice(a)

return ua

resolution = get_random_resolution()

ua = get_random_ua()

browser = webdriver.Chrome()

mobile_emulation = {

"deviceMetrics":{

"width":int(resolution[0]),

"height":int(resolution[1]),

"pixelRatio":3.0,

"touch":False

},

"userAgent":ua

}

chrome_options = Options()

#设置客户端分辨率与UA

chrome_options.add_experimental_option('mobileEmulation', mobile_emulation)

#取消“chrome正受到自动测试软件的控制”的提示

chrome_option.add_experimental_option('excludeSwitches', ['enable-automation'])

browser = webdriver.Chrome(options=chrome_options)

#设置加载超时

browser.set_page_load_timeout(120)

#js的加载超时

browser.set_script_timeout(120)

#清空cookie

browser.delete_all_cookies()

browser.get(url)

七、webbrowser访问网页

import webbrowser

sites = random.choice(['baid.com','sohu.com','163.com'])

visit = "http://{}".format(sites)

webbrowser.open(visit)

参考:https://www.cnblogs.com/liugp/p/10563301.html

原载:蜗牛博客

网址:http://www.snailtoday.com

尊重版权,转载时务必以链接形式注明作者和原始出处及本声明。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值