精华内容
下载资源
问答
  • 问题原因:报错提示cannot get automation extension根据各种调试,发现是对应版本不对,上图发现selenium的版本是57.0.2987.133,需要driver为2.29以上的。而当前driver的版本为2.27,所以就会报错。 解决方法:...

    问题原因:
    报错提示cannot get automation extension
    根据各种调试,发现是对应版本不对,上图发现selenium的版本是57.0.2987.133,需要driver为2.29以上的。而当前driver的版本为2.27,所以就会报错。

    解决方法:
    替换上最新版本的driver即可

    转载于:https://www.cnblogs.com/semishigure/p/7268602.html

    展开全文
  • Python selenium 安装 安装 selenium 简介:是python的一个扩展包。前提是安装了python3,这里不展开。 pip install selenium 下载浏览器驱动 简介:浏览器驱动就是用来驱动浏览器做事情的一个东西。 查看...

    Python selenium

    安装

    1. 安装 selenium

    简介:是python的一个扩展包。前提是安装了python3,这里不展开。

    pip install selenium
    
    1. 下载浏览器驱动

    简介:浏览器驱动就是用来驱动浏览器做事情的一个东西。

    查看浏览器版本,在谷歌浏览器输入 chrome://version/,查看版本信息,这里样例为 89.0.4389.90

    在这里插入图片描述

    点击下载驱动,选择版本一致的。

    在这里插入图片描述

    解压文件得到文件chromedriver.exe,放置到任意目录,这里样例为D:\work\www\GeckoDriver

    在这里插入图片描述

    将放置的目录添加Path环境变量。这里不展开。

    至此,环境安装完毕。

    demo1 端口模式

    注意:脚本命名一定不能是selenium.py,否则冲突报错。

    简介:通过cmd打开指定端口的浏览器,然后使用selenium进入调式模式的端口,达到操作已经打开浏览器的目的。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    # @Time         : 2021/7/1 12:11
    # @Author       : Depapier
    # @Email        : dengmuming@163.com
    # @Description  :
    # @File         : test.py
    # @Software     : PyCharm
    
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    import os
    import time
    
    # 步骤1:cmd执行
    # "C:\Program Files\Google\Chrome\Application\chrome.exe"  --remote-debugging-port=9222 --disable-web-security --user-data-dir=D:\soft\data\trinh_trinh_happqhilde_pqjub2021@outlook.com
    
    # 实验性
    # cmd = '"C:\Program Files\Google\Chrome\Application\chrome.exe"  --remote-debugging-port=9222 --disable-web-security --user-data-dir=D:\soft\data\\trinh_trinh_happqhilde_pqjub2021@outlook.com'
    # os.system(cmd)
    
    # time.sleep(3)
    
    # 步骤2:py脚本执行
    
    chrome_options = Options()
    
    executable_path = "D:\depapier\www\GeckoDriver\chromedriver"
    
    chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
    
    browser = webdriver.Chrome(executable_path, chrome_options = chrome_options)
    
    print(browser.title)
    
    # 浏览器 新窗口打开连接
    newwindow = 'window.open("https://www.facebook.com")'
    browser.execute_script(newwindow)
    
    element = browser.find_element_by_link_text("新闻")
    element.click()
    

    demo2 配参模式

    简介:通过配置参数的方式,达到操作打开指定浏览器的目的。

    d#!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    # @Time         : 2021/7/1 12:11
    # @Author       : Depapier
    # @Email        : dengmuming@163.com
    # @Description  :
    # @File         : test.py
    # @Software     : PyCharm
    
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    
    chrome_options = Options()
    
    executable_path = "D:\work\www\GeckoDriver\chromedriver"
    
    # 参数一栏 网址:https://peter.sh/experiments/chromium-command-line-switches/
    #
    # chrome_options.add_argument('--user-agent=""')  # 设置请求头的User-Agent
    # chrome_options.add_argument('--window-size=1280x1024')  # 设置浏览器分辨率(窗口大小)
    # chrome_options.add_argument('--start-maximized')  # 最大化运行(全屏窗口),不设置,取元素会报错
    # chrome_options.add_argument('--disable-infobars')  # 禁用浏览器正在被自动化程序控制的提示
    # chrome_options.add_argument('--incognito')  # 隐身模式(无痕模式)
    # chrome_options.add_argument('--hide-scrollbars')  # 隐藏滚动条, 应对一些特殊页面
    # chrome_options.add_argument('--disable-javascript')  # 禁用javascript
    # chrome_options.add_argument('--blink-settings=imagesEnabled=false')  # 不加载图片, 提升速度
    # chrome_options.add_argument('--headless')  # 浏览器不提供可视化页面
    # chrome_options.add_argument('--ignore-certificate-errors')  # 禁用扩展插件并实现窗口最大化
    # chrome_options.add_argument('--disable-gpu')  # 禁用GPU加速
    # chrome_options.add_argument('–disable-software-rasterizer')
    # chrome_options.add_argument('--disable-extensions')
    # chrome_options.add_argument('--start-maximized')
    
    # 设置浏览器启动模式
    chrome_options.add_argument('--disable-web-security')
    chrome_options.add_argument('--user-data-dir=D:\soft\data\\trinh_trinh_happqhilde_pqjub2021@outlook.com')
    
    browser = webdriver.Chrome(executable_path, chrome_options = chrome_options)
    
    print(browser.title)
    
    # 浏览器 新窗口打开连接
    newwindow = 'window.open("https://www.facebook.com")'
    browser.execute_script(newwindow)
    

    更多demo 持续更新

    展开全文
  • driver= webdriver.Firefox() 当然也可以换成 IE 或 Chrome定位元素: driver.find_element_by_id("kw").send_keys("selenium")driver.find_element_by_id("su").click()退出并关闭窗口的每...

    导入相关的函数: from selenium import webdriver

    启动浏览器: driver= webdriver.Firefox() 当然也可以换成 IE 或 Chrome

    定位元素: driver.find_element_by_id("kw").send_keys("selenium")

    driver.find_element_by_id("su").click()

    退出并关闭窗口的每一个相关的驱动程序:driver.quit()

    关闭当前窗口: driver.close()

    元素的定位

     · id

     · name

     · class name

     · link text

     · partial link text

     · tag name

     · xpath

     · css selector

    添加等待时间

    有时候为了保证脚本运行的稳定性,需要脚本中添加等待时间。

    需要引入 time 包

    Import time

    time.sleep(0.3) #休眠 0.3 秒

    通过添加 implicitly_wait() 方法就可以方便的实现智能等待

    driver.implicitly_wait(30)

    selenium.webdriver.remote.webdriver.implicitly_wait(time_to_wait)

    隐式地等待一个无素被发现或一个命令完成;

    这个方法每次会话只需要调用一次 time_to_wait: 等待时间

    打印信息

    print (driver.title) # 把页面 title 打印出来

    打印 URL print ("now access %s" %(url))

    浏览器最大化

    driver.maximize_window() #将浏览器最大化显示

    设置浏览器宽、高

    driver.set_window_size(480, 800)

    操作浏览器的前进、后退

    browser.back()

    browser.forward()

    为了使过程让你看得更清晰,在每一步操作上都可以加了 print 和 sleep

    操作测试对象

    一般来说,webdriver 中比较常用的操作对象的方法有下面几个

    click 点击对象

    send_keys 在对象上模拟按键输入

    clear 清除对象的内容,如果可以的话

    submit 提交表单

    text 用于获取元素的文本信息

    get_attribute 获得属性值

    键盘事件

     键盘按键用法

     键盘组合键用法

     send_keys() 输入中文乱码问题

    from selenium import webdriver

    from selenium.webdriver.common.keys import Keys #需要引入 keys 包

    import os,time

    // tab 的定位相相于清除了密码框的默认提示信息,等同上面的 clear()

    driver.find_element_by_id("user_name").send_keys(Keys.TAB)

    time.sleep(3)

    driver.find_element_by_id("user_pwd").send_keys("123456")

    // 通过定位密码框,enter(回车)来代替登陆按钮

    driver.find_element_by_id("user_pwd").send_keys(Keys.ENTER)

    // 也可定位登陆按钮,通过 enter(回车)代替 click()

    driver.find_element_by_id("login").send_keys(Keys.ENTER)

    // 输入框输入内容

    driver.find_element_by_id("kw").send_keys("selenium")

    time.sleep(3) #ctrl+a 全选输入框内容

    driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')

    time.sleep(3) #ctrl+x 剪切输入框内容

    driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')

    time.sleep(3) #输入框重新输入内容,搜索

    driver.find_element_by_id("kw").send_keys(u"安妮 anan")

    driver.find_element_by_id("su").click()

    鼠标事件

    ActionChains 类

     context_click() 右击

     double_click() 双击

     drag_and_drop() 拖动

    from selenium.webdriver.common.action_chains import ActionChains

    定位一组元素

    定位选取这组元素的共同属性, 通过一个循环来控制每一个控件

    多层框架/窗口定位

    switch_to_frame()

    switch_to_window()

    先找到到 ifrome1(id = f1)

    browser.switch_to_frame("f1")

    再找到其下面的 ifrome2(id =f2)

    browser.switch_to_frame("f2")

    WebDriverWait(driver, 10)

    10 秒内每隔 500 毫秒扫描 1 次页面变化,当出现指定的元素后结束。

    is_displayed() 该元素是否用户可以见

    class ActionChains(driver)

    driver: 执行用户操作实例 webdriver 生成用户的行为。

    所有的行动都存储在 actionchains 对象。通过 perform()存储的行为。

    move_to_element(menu)

    移动鼠标到一个元素中,menu 上面已经定义了他所指向的哪一个元素

    to_element:元件移动到

    perform() 执行所有存储的行为

    上传文件操作

    脚本要与 upload_file.html 同一目录

    file_path = 'file:///' + os.path.abspath('upload_file.html') driver.get(file_path)

    定位上传按钮,添加本地文件

    driver.find_element_by_name("file").send_keys('D:\selenium_use_c ase\upload_file.txt')

    time.sleep(2)

    alert、confirm、prompt 的处理

    text 返回 alert/confirm/prompt 中的文字信息

    accept 点击确认按钮

    dismiss 点击取消按钮,如果有的话

    send_keys 输入值,这个 alert\confirm 没有对话框就不能用了,不然会报错

    cookie 处理

    driver.get_cookies() 获得 cookie 信息

    add_cookie(cookie_dict) 向 cookie 添加会话信息

    delete_cookie(name) 删除特定(部分)的 cookie

    delete_all_cookies() 删除所有 cookie

    展开全文
  • Selenium 是一个浏览器自动测试框架,它主要用于web应用程序的自动测试,其主要特点如下:开源、免费;多平台、浏览器、多语言支持;对web页面有良好的支持;API简单灵活易于使用;支持分布式测试用例执行。...

    一什么是Selenium ?

    Selenium 是一个浏览器自动化测试框架,它主要用于web应用程序的自动化测试,其主要特点如下:开源、免费;多平台、浏览器、多语言支持;对web页面有良好的支持;API简单灵活易于使用;支持分布式测试用例执行。

    Selenium经历了两个版本,Selenium1.0和2.0,Selenium1.0主要由以下几部分构成:

    Selenium IDE:是一个嵌入到Firefox中的插件,可以实现浏览器的录制于回放功能。

    Selenium Grid:自动化测试辅助工具,可以很方便地同时在多台机器上并行运行多个测试事例。

    Selenium RC:是Selenium的核心工具,支持多种不同的语言编写的测试脚本,通过Selenium RC的服务器作为代理服务器去访问应用从而达到测试的目的。主要分为以下两部分:

    1.Client:用来编写测试脚本来控制Selenium server的库。

    2.Server:负责控制浏览器的行为,包含三部分:Launcher;HttpProxy;Core。

    明白了Selenium1.0的家族关系,Selenium2.0可以简单的认为是将WebDriver加入到了Selenium RC这一部分中去。那么Selenium RC和WebDriver有什么区别呢? RC和 WebDriver 类似,都可以看做是一套操作web页面的规范。当然,他们的工作原理不一样。

    Selenium RC 在浏览器中运行 JavaScript 应用,使用浏览器内置的 JavaScript 翻译器来翻译和执行selenese 命令(Selenium 命令集合) 。WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。

    WebDriver 针对各个浏览器而开发,取代了嵌入到被测 Web 应用中的 JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver 还利用操作系统级的调用模拟用户输入。

    二Selenium环境搭建

    1.安装python

    python的安装此处就不细说,去python官网下载地址,下载对应的python版本安装,注意环境变量的配置。

    2.安装Selenium

    使用pip 命令安装 selenium pip install selenium , Mac电脑 安装过python3 使用pip3 install selenium 来安装。

    3.安装浏览器驱动

    使用chrome浏览器,需要下载对应版本的chromedriver

    4.安装上述工具后,可以测试下环境是否正常,使用以下这段代码

    # -*- coding:utf-8 -*-

    from selenium import webdriver

    driver = webdriver.Chrome()

    driver.get("http://baidu.com")

    driver.close()

    浏览器能正常打开百度,那么环境安装是正常的

    三WebDriver API

    1.定位元素

    通过id属性来定位元素(id属性在html文档中必须具有唯一性)

    find_element_by_id()方法

    通过name属性来定位元素(name属性在当前页面中)

    find_element_by_name()方法

    通过class属性来定位元素

    find_element_by_class_name()方法

    通过tag来定位元素

    find_element_by_tag_name()方法

    通过link元素标签对之间的文本信息来定位元素

    find_element_by_link_text()方法

    通过partial link定位元素,和link类似,只不过是部分文本信息来进行定位

    find_element_by_partial_link_text()方法

    find_element_by_xpath()方法

    绝对路径来定位:

    find_element_by_xpath('/html/body/.........')

    文本框:

    find_element_by_xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input")

    通过CSS定位元素

    1.通过id属性定位元素

    文本框:

    find_element_by_css_selector("#kw")

    按钮:find_element_by_css_selector("#su")

    2.通过class属性定位元素

    文本框:

    find_element_by_css_selector(".s_ipt")

    按钮:find_element_by_css_selector(".bg s_btn")

    3.通过其他属性值来定位元素

    文本框:

    find_element_by_css_selector("[name = 'wd']")

    find_element_by_css_selector("[maxlength = 255]")

    find_element_by_css_selector("[autocomplete = 'off']")

    1.控制浏览器

    控制浏览器窗口大小:

    driver=webdriver.Firefox()

    #设置窗口大小为x,y

    driver.set_window_size(x,y)

    #最大化窗口

    driver.maxmize_window()

    2.元素操作

    当我们获取了元素之后,还要对其进行操作,如点击按钮、输入文字、提交表单等。大多数页面交互的方法通过WebElement接口提供,常用的有:

    clear() 清除文本框中的文本

    send_keys(*value) 模拟按键输入

    click() 单击元素 这几个方法很简单,很方便使用。 submit() 用于提交表单,例如搜索框中的提交按钮。比如我们可以用如下代码直接输入搜索的关键字后用submit()提交,而不用获取搜索按钮再点击。

    driver.find_element_by_css_selector("#kw").send_keys("selenium2").submit()

    还有几个常用的方法:

    size() 获取元素的大小尺寸

    text()获取元素的文本

    is_displayed()元素是否可见

    鼠标、键盘事件

    模拟鼠标右键、双击、悬停、拖拽等操作,会用到ActionChains类。

    selenium.webdriver.common.action_chains.ActionChains(driver)当调用ActionChains的方法时,不会立即执行,而是会将所有的操作按顺序存放在一个队列里,当你调用perform()方法时,队列中的时间会依次执行。

    ActionChains方法列表:

    click_and_hold(on_element=None) ——点击鼠标左键,不松开

    context_click(on_element=None) ——点击鼠标右键

    double_click(on_element=None) ——双击鼠标左键

    drag_and_drop(source, target) ——拖拽到某个元素然后松开

    drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开

    key_down(value, element=None) ——按下某个键盘上的键

    key_up(value, element=None) ——松开某个键

    move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标

    move_to_element(to_element) ——鼠标移动到某个元素

    move_to_element_with_offset(to_element, xoffset, yoffset) ——移到距某个元素(左上角)多少距离的位置

    perform() ——执行链中的所有动作

    release(on_element=None) ——在某个元素位置松开鼠标左键

    send_keys(*keys_to_send) ——发送某个键到当前焦点的元素

    send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素

    设置等待时间

    显示等待:主要使用的类和方法:WebDriverWait、uitil\until_not、Expected Conditions。

    隐式等待: implicitly_wait

    其他操作 还有其他一些操作如:上传下载文件、操作cookie、验证码的处理等等操作还没有用到过,用到的时候再去学习就好了。 熟练使用以上的各部分,可以写出各种常用的脚本,我们算是入门Selenium了。

    展开全文
  • driver.find_element_by_id('translateContent').send_keys('hello') driver.find_element_by_id('translateContent').submit() ...最近学习自动化测试的时候发现之前用过的这个浏览器最大化方法现在运行会报错 o
  • 软件测试python selenium自动常用关键字 工具安装:1.安装python2.安装selenium库(dos命令下进入selenium-2.53.2存放路径,执行pipinstallselenium-2.53.2)3.将浏览器驱动放到python安装文件夹中,且存放路径...
  • 众所周知,windows系统中常用的方法是maximize_window(),但是在mac上不管用。 解决方法 一、系统设置 1、在Finder–系统偏好设置中找到Dock,勾选里面的“自动显示和隐藏Dock” 2、找到“通用”,勾选里面的“自动...
  • python selenium

    2021-05-05 00:31:35
    selenium介绍 加载驱动 PhantomJS driver = webdriver.PhantomJS() 需要把PhantomJS加载到环境变量或者当前目录 把驱动放到path环境变量中,python解析器中 打开url 模拟在百度输入框写入 找到输入框的element...
  • 2浏览器最大化 3截屏并保存文件 4退出浏览器 二、代码 #coding:utf-8 ''' 1设置浏览器窗口大小 2浏览器最大化 3截屏并保存文件 4退出浏览器 ''' #导入依懒的模块 from selenium import webdriver as web ...
  • Selenium webdriver常用操作 1.安装pip install selenium 通过selenium库得到浏览器的驱动对象(需要下载驱动程序,不同的浏览器需要不同的 驱动对象,Fire... 仅仅关闭当前页面,如果他打开的仅一个窗口则退出浏览器 D
  • Python Selenium 基础入门

    2021-05-20 19:33:45
    本内容主要介绍 Python Selenium 的基础使用方法。
  • Python Selenium个人学习笔记

    万次阅读 多人点赞 2018-01-20 11:11:27
    随着Python语言运用的越来越广,使用Python Selenium的频率逐渐变多,所以该篇文章介绍的Selenium是基于Python语言的。 支持浏览器:IE,Chrome,FireFox,Safari。支持Windows,Mac系统平台上运行 本篇文章适合有...
  • python selenium 常用方法

    2020-04-22 17:41:36
    python selenium 常用方法 1、文档 中文文档 https://python-selenium-zh.readthedocs.io/zh_CN/latest/4.元素定位/ 官方文档 https://selenium-python.readth...
  • python selenium轻松入门

    2019-03-08 12:36:04
    python selenium轻松入门selenium简介selenium安装selenium使用页面元素定位常用的driver方法常用的element方法 selenium简介 Selenium是一个用于测试Web应用程序的可移植框架。 Selenium提供了一种用于创作功能...
  • Python selenium

    2017-11-22 22:31:12
    1、浏览器最大化 driver.maximize_window() #将浏览器最大化显示 2、设置浏览器宽、高 driver.set_window_size(480, 800)#设置浏览器宽480、高800显示 3、控制浏览器前进、后退 driver.back()#...
  • 获取浏览器大小、设置浏览器位置、最大化浏览器 get_window_size() 获取浏览器大小 # 将窗口大小实例化 size_Dict = driver.get_window_size() # 打印浏览器的宽和高 print("当前浏览器的宽:", size_Dict['width'...
  • Python Selenium 基础

    2020-05-09 17:37:50
    如果你有一定的python基础 开始看python自动 可以参考如下selenium基础 首先你需要查看浏览器版本 Chrome可以打开chrome://settings/help查看 知道版本后 再去...
  • driver.maximize_window() #网页最大化 driver.back() #返回 driver.forward() #向前 driver.refresh() #刷新 driver.set_window_position(y=200,x=400) #将浏览器的位置放在y=200,x=400的位置上 self.driver.set_...
  • 本文为Python自动测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁。 本文应用到POM模型、selenium、unittest框架、configparser配置文件、smtplib邮件发送、HTMLTestRunner测试报告模块...
  • 本文为Python自动测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁。 本文应用到POM模型、selenium、unittest框架、configparser配置文件、smtplib邮件发送、HTMLTestRunner测试报告模块...
  • 一、Selenium入门 1、Selenium实现对浏览器的操作 上期我们价绍了Selenium的基础和八个定位元素的方式,这期和大家分享一下webdriver对浏览器的一些操作。 知道如何定位到我们要操作的元素,那么下面我们就要对定位...
  • 一、Selenium入门 上期主要介绍了使用webdriver对浏览器的操作、获取元素信息、和元素等待,本期只要是鼠标事件、切换窗口、下拉选择框的介绍,下面进入主题首先是鼠标事件 1、鼠标事件 方法 说明 ...
  • Python Selenium

    2017-01-23 17:54:00
    首先到pypi上下载selenium,不同版本的selenium对chrome/chormium的版本要求也不同。解压然后将路径添加到PATH。API看了半天没看懂,所以还是到网上直接找了例子进行学习。 #!/usr/bin/env python # -*- coding:...
  • Python Selenium 常用方法

    千次阅读 2017-03-08 12:57:30
    python中,自动操作web,有selenium和splinter,后者主要根据前者进行一个封装,功能没有前者强大,但比较容易掌握上手,如果对于没有基础新手而言,可以学习后者再学前者。先说说Selenium的一些具体用法吧: ...
  • 本文为Python自动测试框架基础入门篇,主要帮助会写基本selenium测试代码又没有规划的同仁。 本文应用到POM模型、selenium、unittest框架、configparser配置文件、smtplib邮件发送、HTMLTestRunner测试报告模块...
  • 一、Selenium入门 本期介绍如何处理警告弹窗,frame切换和滚动条的操作,顺便再说一下如何对页面进行截图,下面直接进入正题开始本期的内容。 1、警告弹窗的处理 有时我们在执行时会弹出一些系统的弹框,这是我们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,348
精华内容 1,739
关键字:

pythonselenium窗口最大化

python 订阅