这篇文章是具体结合了需求而写的。
获取chrome驱动
驱动版本要与浏览器版本相匹配
chrome版本查看url
chrome://version
要把chromedriver放入chrome.exe本级目录当中
挂在chrome驱动
browser = webdriver.Chrome("path/to/chromedriver.exe")
进入网页
browser.get("url")
本次项目中是从csv文件中依次读取账号密码模拟登录退出
模拟登录
send_keys是输入字符,click是点击,以下三步实现了 输入账号密码点击登录
# 输入账号
browser.find_element(by="id",value="inputName").send_keys(username)
# 输入密码
browser.find_element(by="id",value="inputPassword").send_keys(password)
# 点击登录
browser.find_element(by="id",value="submit").click()
模拟退出
目标网页前端可能会弹窗,影响按既定程序点击退出按钮。经分析发现,登录后的网页包含了用户退出的url,只要访问该url,就可实现退出并跳转到初始的登录页面
首先通过xpath获取
根据分析可发现退出的url必然包含该字符串,所以根据contain该字符串可获得对应的href
log_out_url = browser.find_element(by="xpath", value="//*[contains(@href,'https://moodle.aibt.qld.edu.au/login/logout.php')]").get_attribute('href')
使用网址退出
browser.get(log_out_url)
流程即可完成
本次仍有一个问题待解决,selenium加载页面的策略是 等待页面完全加载完后再继续,若网页加载过慢则会影响操作,但往往是js等过慢,并不影响流程使用。如何避免该问题仍未成功实践。