谷歌切换页面调试(谷歌浏览器怎么切换引擎)
使用示例
首先来看一个 selenium 的使用示例:
import time# 导入浏览器驱动from selenium import webdriver# 使用浏览器驱动实例化一个谷歌浏览器驱动对象: driver,所有关于浏览器的操作,都由driver对象完成driver = webdriver.Chrometry: # 打开浏览器,访问指定的url driver.get # 你对当前的页面要做的操作 input_obj = driver.find_element_by_id print input_obj.send_keys time.sleep driver.find_element_by_id.click time.sleep driver.find_element_by_xpath.clickfinally: time.sleep # 关闭浏览器 driver.close
在下面的讨论中,如无特别声明,我将使用 driver 指代浏览器驱动对象,而不会每次都创建。而且使用完毕后,都会关闭掉驱动,关闭操作也先不写了。
常用类
from selenium import webdriver # 驱动浏览器from selenium.webdriver import ActionChains # 鼠标的相关操作,比如滑动验证from selenium.webdriver.common.by import By # 选择器,以什么方式选择标签元素from selenium.webdriver.common.keys import Keys # 键盘相关from selenium.webdriver.support import expected_conditions as EC # 各种判断,一般跟等待事件连用,比如说等待某个元素加载出来from selenium.webdriver.support.wait import WebDriverWait # 等待事件,可以与EC连用
浏览器页面操作
from selenium import webdriver # 驱动浏览器from selenium.webdriver import ActionChains # 鼠标的相关操作,比如滑动验证from selenium.webdriver.common.by import By # 选择器,以什么方式选择标签元素from selenium.webdriver.common.keys import Keys # 键盘相关from selenium.webdriver.support import expected_conditions as EC # 各种判断,一般跟等待事件连用,比如说等待某个元素加载出来from selenium.webdriver.support.wait import WebDriverWait # 等待事件,可以与EC连用
浏览器页面操作
driver.maximize_window # 浏览器窗口蕞大化driver.minimize_window # 蕞小化driver.set_window_size # 指定窗口大小print # 获取页面的titleprint # 获取网页文本print # 获取当前页的urlprint # 获取driver对象名,比如:chromeprint) # 获取cookiesprint # 获取当前浏览器窗口id,切换窗口时会用到print # 获取所有浏览器窗口id,存放在列表中driver.refresh # 刷新当前页面driver.back # 后退driver.forward # 前进driver.execute_script') # js注入driver.close # 关闭当前的窗口对象driver.quit # 退出浏览器
截屏操作
# 获取截屏的字节流,需要我们手动写到文件中res = driver.get_screenshot_as_png# print # 图片二进制数据f = openf.write# 直接保存截屏,图片的格式为pngdriver.save_screenshot# 截屏某个元素driver.find_element_by_id.screenshot
选择器
选择器用来找到页面中的某个指定到标签。find_element_by_xxx 只会找到弟一个符合条件的标签,返回的将是一个标签对象;而 find_elements_by_xxx 返回的则是一个列表,列表里面装的是所有符合条件的标签。
# 通过id定位driver.find_element_by_iddriver.find_elements_by_id# 通过xpath定位driver.find_element_by_xpathdriver.find_elements_by_xpath# 通过class类名定位driver.find_element_by_class_namedriver.find_elements_by_class_name# 通过css选择器定位# 浏览 f12 选中标签,鼠标右键 copy -- copy selector# css selector # - 标签# - id# - classdriver.find_element_by_css_selectordriver.find_elements_by_css_selector# 通过tag标签名定位driver.find_element_by_tag_namedriver.find_elements_by_tag_name# 通过a标签的link属性文本定位# 只能适用于超链接# link_text 精确定位# partial_link_text : 模糊定位,谨慎使用driver.find_element_by_link_textdriver.find_elements_by_link_textdriver.find_element_by_partial_link_textdriver.find_elements_by_partial_link_text# 根据name属性定位driver.find_element_by_namedriver.find_elements_by_name
By
上面介绍的各种标签选择器全部都可以通过 By 来调用:
from selenium import webdriverfrom selenium.webdriver.common.by import Bydriver = webdriver.Firefoxdriver.get# driver.find_element_by_iddriver.find_element.send_keysdriver.find_elements[0].send_keys# By.ID# By.CLASS_NAME# By.LINK_TEXT# By.NAME# By.XPATH# By.CSS_SELECTOR
鼠标事件
如果是简单的鼠标左键点击,可以直接使用标签的 click 方法实现:
driver.getdriver.find_element_by_id.click
动作链 ActionChains 用来实现鼠标事件。鼠标事件有很多,包括点击拖动等。注意鼠标事件设置好后,要使用 perform 方法执行生效。
from selenium.webdriver import ActionChains # 鼠标相关的操作都在这里# 左键单击a1 = driver.find_element_by_xpathActionChains.click.perform# 左键双击a2 = driver.find_element_by_xpathActionChains.double_click.perform# 右键单击a3 = driver.find_element_by_xpathActionChains.context_click.perform# 移动鼠标ActionChains.move_to_element.perform# 拖拽a = driver.find_element_by_idtime.sleepb = driver.find_element_by_idtime.sleepActionChains.drag_and_drop.perform
鼠标事件所有方法:
print)['click', 'click_and_hold', 'context_click', 'double_click', 'drag_and_drop', 'drag_and_drop_by_offset', 'key_down', 'key_up', 'move_by_offset', 'move_to_element', 'move_to_element_with_offset', 'pause', 'perform', 'release', 'reset_actions', 'send_keys', 'send_keys_to_element']
键盘事件
键盘事件是标签对象的方法,应用蕞多的是向 input 框中输入数据。
from selenium.webdriver.common.keys import Keys# 获取input标签user = driver.find_element_by_iduser.send_keys # 向input标签中输入内容user.send_keys # 在input标签中使用快捷键 ctrl + auser.send_keys # 按下delete键user.send_keys # 按下backspace键user.send_keys # 按下回车键user.send_keys # TAB之后,输入值user.send_keys # tab之后,直接回车# 上传文件流程:1.访问url,2.获取input框,3.输入文件路径,4.点击上传obj = driver.find_element_by_css_selectorfile_path = r'C:\\Users\\Administrator\\Desktop\\接口测试示例.xlsx'obj.send_keys
键盘操作所有方法:
print) # 查看Keys中所有的属性和方法['ADD', 'ALT', 'ARROW_DOWN', 'ARROW_LEFT', 'ARROW_RIGHT','ARROW_UP', 'BACKSPACE', 'BACK_SPACE', 'CANCEL', 'CLEAR','COMMAND', 'CONTROL', 'DECIMAL', 'DELETE', 'DIVIDE', 'DOWN','END', 'ENTER', 'EQUALS', 'ESCAPE', 'F1', 'F10', 'F22','F12', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9','HELP', 'HOME', 'INSERT', 'LEFT', 'LEFT_ALT', 'LEFT_CONTROL','LEFT_SHIFT', 'META', 'MULTIPLY', 'NULL', 'NUMPAD0','NUMPAD1', 'NUMPAD2', 'NUMPAD3', 'NUMPAD4', 'NUMPAD5','NUMPAD6', 'NUMPAD7', 'NUMPAD8', 'NUMPAD9', 'PAGE_DOWN','PAGE_UP', 'PAUSE', 'RETURN', 'RIGHT', 'SEMICOLON', 'SEPARATOR','SHIFT', 'SPACE', 'SUBTRACT', 'TAB', 'UP']
窗口切换
要注意,Selenium 是无法找到 iframe 中的标签的,需要切换到 iframe 中,才能进行后续的查找。
driver.switch_to.window # 切换到指定的窗口对象中,current_window_handle和window_handles属性可得到driver.switch_to.frame # 切换到指定的iframedriver.switch_to.alert # 切换到alertdriver.switch_to.default_content # 切换到之前的页面中driver.switch_to.parent_frame # 切换到它爹的iframe
滚动条操作
通过 js 注入的方式,滚动滚动条。
import timefrom selenium import webdriverdriver = webdriver.Chromedriver.gettime.sleepfor i in range: driver.execute_script;'.format) time.sleep
直接滚动到页面底部:
driver.execute_script;')
海外精品引流脚本–最强海外引流
查看演示与获取方案
读完本篇后,可通过下方入口查看演示视频、联系客服或访问主站。

