ubuntu+python3+selenium+chrome+chromedriver模拟登陆
安装python3
sudo add-apt-repository ppa:jonathonf/python-3.6
输入命令sudo apt-get update
输入命令sudo apt-get install python3.6
按Y确认
调整Python3的优先级,使得3.6优先级较高
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
更改默认值,python默认为Python2,现在修改为Python3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
因为要用到selenium所以需要提前安装好pip
apt install python3-pip
执行完成后使用pip安装selenium
pip install selenimu
安装成功后安装chrome浏览器 本机可不需要界面化操作,但需要无头跑则安装xvfb
apt-get install xvfb
安装google浏览器
安装chromedriver
http://npm.taobao.org/mirrors/chromedriver/
本文发表时所用版本匹配
chrome
root@localhost:/home/wwwroot# google-chrome -version
Google Chrome 76.0.3809.100
chromedriver
root@localhost:/home/wwwroot# chromedriver -v
ChromeDriver 76.0.3809.126
创建python文件
vi test.py
代码正文:
#coding=utf-8
import sys
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('window-size=1920x3000')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--hide-scrollbars')
chrome_options.add_argument('blink-settings=imagesEnabled=false')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=chrome_options)
usernames = sys.argv[1] //使用sys方法从命令行添加脚本所需的账号亦可以如下所示填写账号
#usernames = "username"
userpasswd = sys.argv[2] //使用sys方法从命令行添加脚本所需的账号亦可以如下所示填写密码
userpasswd = “userpasswd”
geturl = 'https:.//www.baidu.com'//模拟登陆的网页
username = usernames
password = userpasswd
browser.get(geturl)
assert "Netflix" in browser.title//网页的title
browser.find_element_by_id("id_userLoginId").send_keys(username)
browser.find_element_by_id("id_password").send_keys(password)
browser.find_element_by_class_name("login-button").click()
print (browser.current_url)
//通过输出验证后访问的链接可以判断出账号密码是否正确,一般情况下若链接更改则说明登录成功 链接不更改则登录失败,请提前参阅模拟登陆网站的登录模式及逻辑
#browser.implicitly_wait(10)
#browser.quit()
代码结束