Python Selenium参数配置方法解析
这篇文章主要介绍了PythonSelenium参数配置方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
selenium.获取浏览器大小、设置浏览器位置、最大化浏览器
get_window_size()获取浏览器大小
#将窗口大小实例化 size_Dict=driver.get_window_size() #打印浏览器的宽和高 print("当前浏览器的宽:",size_Dict['width']) print("当前浏览器的高:",size_Dict['height'])
set_window_size()设置浏览器大小
driver.set_window_size(width=500,height=500,windowHandle="current")
get_window_position()获取浏览器在屏幕上的坐标
#将窗口位置实例化 position=driver.get_window_position() #打印窗口坐标 print(position) print("浏览器所在位置的横坐标:",position["x"]) print("浏览器所在位置的纵坐标:",position["y"])
set_window_position()设置浏览器在屏幕的位置
#设置窗口位置并打印位置坐标 driver.set_window_position(x=100,y=200) print(driver.get_window_position())
maximize_window()最大化浏览器
#最大化浏览器并输出浏览器的大小和位置坐标 driver.maximize_window() print(driver.get_window_size()) print(driver.get_window_position())
Selenium中的“显式等待”和“隐式等待”
显式等待(常用)
显式等待的代码定义了等待条件,只有该条件触发,才执行后续代码。下面代码最多等待10秒,超时后就抛出TimeoutException。
fromseleniumimportwebdriver fromselenium.webdriver.common.byimportBy fromselenium.webdriver.support.uiimportWebDriverWait fromselenium.webdriver.supportimportexpected_conditionsasEC driver=webdriver.Firefox()driver.get("http://somedomain/url_that_delays_loading") try: element=WebDriverWait(driver,10).until( EC.presence_of_element_located((By.ID,"myDynamicElement"))) finally: #等待后执行的代码 #driver.quit()
隐式等待
隐式等待是在尝试发现某个元素的时候,如果没能立刻发现,就等待固定长度的时间。默认设置是0秒。一旦设置了隐式等待时间,它的作用范围就是Webdriver对象实例的整个生命周期。
fromseleniumimportwebdriver driver=webdriver.Firefox() driver.implicitly_wait(10)#seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement=driver.find_element_by_id("myDynamicElement")
Selenium+Chrome参数配置
fromseleniumimportwebdriver fromselenium.webdriver.chrome.optionsimportOptions #实例化一个启动参数对象 chrome_options=Options() #无界面运行(无窗口) chrome_options.add_argument('--headless') #启动浏览器 driver=webdriver.Chrome(chrome_options=chrome_options) #请求百度首页 driver.get('http://www.baidu.com')
其中的–headless就是一个启动项参数
常用的启动项参数如下所示
- –user-data-dir=”[PATH]”指定用户文件夹UserData路径,可以把书签这样的用户数据保存在系统分区以外的分区。
- –disk-cache-dir=”[PATH]“指定缓存Cache路径
- –disk-cache-size=指定Cache大小,单位Byte
- –firstrun重置到初始状态,第一次运行
- –incognito隐身模式启动
- –disable-javascript禁用Javascript
- –omnibox-popup-count=”num”将地址栏弹出的提示菜单数量改为num个。我都改为15个了。
- –user-agent=”xxxxxxxx”修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
- –disable-plugins禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果
- –disable-javascript禁用JavaScript,如果觉得速度慢在加上这个
- –disable-java禁用java
- –start-maximized启动就最大化
- –no-sandbox取消沙盒模式
- –single-process单进程运行
- –process-per-tab每个标签使用单独进程
- –process-per-site每个站点使用单独进程
- –in-process-plugins插件不启用单独进程
- –disable-popup-blocking禁用弹出拦截
- –disable-plugins禁用插件
- –disable-images禁用图像
- –enable-udd-profiles启用账户切换菜单
- –proxy-pac-url使用pac代理[via1/2]
- –lang=zh-CN设置语言为简体中文
- –disk-cache-dir自定义缓存目录
- –disk-cache-size自定义缓存最大值(单位byte)
- –media-cache-size自定义多媒体缓存最大值(单位byte)
- –bookmark-menu在工具栏增加一个书签按钮
- –enable-sync启用书签同步
- –single-process单进程运行GoogleChrome
- –start-maximized启动GoogleChrome就最大化
- –disable-java禁止Java
Selenium+Chrome模拟移动设备
#通过设置user-agent,用来模拟移动设备 #比如模拟androidQQ浏览器 options.add_argument('user-agent="MQQBrowser/26Mozilla/5.0(Linux;U;Android2.3.7;zh-cn;MB200Build/GRJ22;CyanogenMod-7)AppleWebKit/533.1(KHTML,likeGecko)Version/4.0MobileSafari/533.1"') #模拟iPhone6 options.add_argument('user-agent="Mozilla/5.0(iPhone;CPUiPhoneOS9_1likeMacOSX)AppleWebKit/601.1.46(KHTML,likeGecko)Version/9.0Mobile/13B143Safari/601.1"')
Selenium+Chrome禁止图片加载的参数配置
#禁止图片的加载 fromseleniumimportwebdriver chrome_options=webdriver.ChromeOptions() prefs={"profile.managed_default_content_settings.images":2} chrome_options.add_experimental_option("prefs",prefs)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。