赞
踩
之前常常是先根据浏览器版本下载对应版本的驱动,但其实有一个办法是可以自动获取当前浏览器的版本,自动下载对应的驱动到本地的。
- from webdriver_manager.chrome import ChromeDriverManager
- browser = webdriver.Chrome(ChromeDriverManager().install())
有一些网站,当用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)
- # 查找所有元素,找到文案包含“登录”的元素,点击
- 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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。