借助selenium登录网站是一个常见的利用,接下来的大部门代码是开辟写好的,这里是自己整理下来的知识点。
驱动安装
之前常常是先根据欣赏器版本下载对应版本的驱动,但着实有一个办法是可以自动获取当前欣赏器的版本,自动下载对应的驱动到当地的。
from webdriver_manager.chrome import ChromeDriverManager browser = webdriver.Chrome(ChromeDriverManager().install())去掉webdriver陈迹
有一些网站,当用webdriver访问时,会提示哀求失败。这时,就须要去掉webdriver陈迹,模拟正常登录。
from selenium.webdriver import ChromeOptions options = ChromeOptions() # 启动设置参数 options.add_argument("--disable-blink-features=AutomationControlled") # 增长参数 browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)假如还需去掉受自动测试软件控制的提示,则须要添加如下参数
options.add_experimental_option('useAutomationExtension', False)xpath定位元素的tips
//* 代表选取文档中的所有元素
# 查找所有元素,找到文案包罗“登录”的元素,点击 browser.find_elements(By.XPATH, "//*[contains(text(), '登录')]")[0].click()查找特定元素
placeholder = '用户名' account='username' # 选取所有input元素(不管位置),拥有值为{placeholder}的placeholder属性 browser.find_elements(By.XPATH, f"//input[@placeholder='{placeholder}']")[0].send_keys(account)上方代码以f开头,表如今字符串内支持大括号内的python表达式
拖拽元素
from selenium.webdriver import ActionChains # 找到drag元素 drag = browser.find_elements(By.XPATH, "//span[@class='btn_slide']")[0] # 调用ActionChains()类,并将欣赏器驱动browser作为参数传入 action_chains = ActionChains(browser) # 模拟拖拽,拖拽到某个坐标然后松开 action_chains.drag_and_drop_by_offset(drag, 320, 0) # 实行ActionChains()中储存的所有利用,可以看做是实行之前一系列的利用 action_chains.perform()唉,是一波知识点了,但是很无语,没有什么特别的进步的感觉~
本日的更新到这里了~
自我纪录,有错误欢迎指正~ |