使用前准备好浏览器对应版本驱动,也可以直接使用edge
使用驱动
driver = webdriver.Chrome(service=Service(r"你浏览器驱动的路径"))
如果使用edge浏览器通常不需要额外下载驱动
driver = webdriver.Edge()
访问网站
访问网站时用driver对象的get方法
driver.get(url)
driver时我们的浏览器对象,对它操作就相当于是对浏览器操作。
操作浏览器
寻找元素
寻找元素有多种方法,但是方法名都相同
element = driver.find_element(By.ID, "id")
element = driver.find_element(By.XPATH, "xpath")
element = driver.find_element(By.CSS_SELECTOR, "css")
element = driver.find_element(By.NAME, "标签名")
element = driver.find_element(By.CLASS_NAME, "类名")
操作元素
获取到的element对象有很多属性和方法,用他们获取信息和操作元素
获取信息
text = element.text #获取文本
href = element.get_attribute("href") #获取指定属性
html_content = driver.execute_script("return arguments[0].outerHTML;", element) #获取html内容
触发事件和js
element.click() #点击事件
element.send_keys("输入的值") #模拟键盘输入过程
element.submit() #如果对象是个表单可以提交表单
element.move_to_element() #模拟鼠标悬停
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") #滚动到页面底部
element.context_click() #右键鼠标
driver.execute_script("js", 对象) #对某对象执行自定义js
操作页签
driver.window_handles #返回页签列表
driver.switch_to.window(目标页签)切换页签
driver.switch_to.window(driver.window_handles[len(driver.window_handles)-1]) #切换到新页签
driver.execute_script("window.close();") 关闭页签