Q:启动IE浏览器时突然报下面错误,不能正常使用。

    WebDriverException: Message: Unexpected error launching Internet Explorer. Browser zoom level was set to 94%. It should be set to 100%

A:原因是IE页面的使用的的显示比例不是100%导致的,把页面显示调整成100%恢复正常。

Q:找不到元素,脚本报NoSuchElementException:Unable to find element 异常怎么办?

    NoSuchElementException: Message: no such element 当找不到元素的时候,就会抛这样的异常,应该如何解决呢?
A:这个问题不是某一个特定原因造成的,与自己的脚本开发经验有关系,提供解决思路,按照这个思路挨个去找,相信你能解决。
  1. 检查使用的元素标识是否正确 如: “username” 中写成了 “usernome”
  2. 检查使用查找的元素标签是否是唯一的 。如:在HTML代码元素中只能有一个 “id = kw” 的元素
  3. 检查查找的元素是否在frame标签下。如果是需要写切换到frame中在进行查找
  4. 检查元素属性是否是会变动的,可以尝试使用其它的(如:css、xpath等)属性查找看看
  5. 检查元素属性是否是隐藏的
  6. 可以在元素查找前面加个等待时间试试
  7. 使用Webdriver实在无法定位的话,使用Js进行定位。

Q: 启动firefox浏览器,报“Plugin Container for Firefox已停止工作” 处理办法?



A:添加用户环境变量 MOZ_DISABLE_OOP_PLUGINS,值为1。
或者:尝试删除firefox安装目录中的 plugin-container.exe 文件
如果firefox、ipython打开着,关闭进程,重启firefox、ipython

Q:启动firefox会加载火狐官网响应特别慢,如何去掉这个加载提升跳转URL速度?

A:修改firefox-profile文件,删除默认的profile,添加一个自定义的profile
    进入CMD 输入 firefox -ProfileManager -no-remote 打开配置项进行删除和创建。

修改代码中启动Firefox的驱动为self.driver = webdriver.Firefox(firefox_profile='selenium',timeout=10)

 

Q:如何使用默认已存在的profile启动firefox?

A:参考:http://stackoverflow.com/questions/11095294/using-the-default-firefox-profile-with-selenium-webdriver-in-python
使用已存在profile启动firefox可以自动登陆已经登陆过的站点。代码如下:
  1. fp = webdriver.FirefoxProfile('/path/to/your/existing/profile')
  1. browser = webdriver.Firefox(fp)
如何创建一个定制的profile?戳这里:https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles
这里在windows上有个坑,就是路径分隔符在windows上是\而不是/ ,把这个弄明白然后指定对路径基本就可以了。
PS:这里还有另一个坑。就是如果你使用默认的profile的话,请一定关闭friefox以后再运行代码,否则会因为profile的文件锁问题而发生异常。就是说
一次只能打开一个firefox实例,如果你使用默认的profile的话。

Q:如何在打开Firefox的同时打开firebug ?  

A:首先下载Firebug XPI文件(这个就是friefox的扩展程序文件--by乙醇),然后再调用firefox profile的add_extension方法。
  1. from selenium import webdriver
  2. fp = webdriver.FirefoxProfile()
  3. fp.add_extension(extension='firebug-1.8.4.xpi')
  4. fp.set_preference("extensions.firebug.currentVersion", "1.8.4") #Avoid startup screen
  5. browser = webdriver.Firefox(firefox_profile=fp)

Q:使用switch_to_frame后,如何返回原frame?

A:switch_to_default_content

Q:同级目录导入方法和在pycharm中显示红色下划线但能正常运行的解决方法?

A: 

假设我需要在public\base.py中导入data\all_test.py,首先需要在data中新建一个空白的__init__.py,然后在base.py中写入
  1. sys.path.append("..")
  2. from data import all_test
虽然不会报错,但在pycharm中会显示成红色,并且导入的模块中的函数在引用时不会有补全和提示功能。其实导入已经正常了,该问题是pycharm的问题,在pycharm的setting中做如下设置就可以了:
把data或者data的上级目录设置成Sources,此时红色下划线会消失,并且也会有导入函数的补全和提示功能。
备:在pycharm上做了以下设置时,其实不需要sys.path.append("..")也是可以导入的,但这不符合python的语法,如果你这样写,离开了pycharm的环境就会报错,所以还是得加上这一句

Q:Jenkins中控制台中文展示和自动更新代码的变更记录中文描述信息显示乱码,如何解决?

A:在启动Jenkins的启动配置文件中,添加文件编码的参数:-Dfile.encoding=utf-8。
Windows系统文件路径:Jenkins安装目录中的 jenkins.xml

  1. <arguments>-Xrs -Xmx256m -Dfile.encoding=utf-8 -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
Linux RPM包服务安装: /etc/sysconfig/jenkins 文件中配置
           JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dfile.encoding=utf-8 -Dsun.jnu.encoding=utf-8"

Q:在pycharm中经常出现下划线怎么办?

如下图:

A:点击要忽略的错误所在,然后按住ALT+ENTER,在弹出下拉菜单选择ignore errors like this ,就可以快速忽略了,如下图:

Q:出现如下图的错误时怎么处理?

A:检查jar包,将  selenium-server-standalone-2.41.0.jar(可能jar包版本会出现不一致) 加入到build path中。然后clear up 一下项目即可。

Q:脚本中的元素和组件怎么定义?
A:元素与组件,组件可以包含元素
通常所说的元素,就是指HTML页面,你可以看到的HTML 元素,那么在脚本里面,比如 find_element_by_id("kw1") 就是定位某一个元素,你也可以把它当作组件。
对于组件来说,我们一般会把一些有操作的意义,或者功能,封装在一个方法或者类里面,那么这个方法或者类,就可以看作一个组件。
就像你要定义一个登录组件
  1. def login(user,pass){
  2. find_element_by_id(user)
  3. find_element_by_id(pass)
  4. find_element_by_id("submit").click()
  5. }
这整个方法,就可以看着是一个组件。而user,pass ,submit 就是元素

QA、Selenium WebDriver (Q&A)的更多相关文章

  1. Selenium自动化测试(java语言)

    Selenium介绍 Selenium 1.0 包含 core. IDE. RC. grid 四部分,  selenium 2.0 则是在两位大牛偶遇相互沟通决定把面向对象结构化( OOPP) 和便于 ...

  2. Java EE : 二、图解 Cookie(小甜饼)

    目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...

  3. 英文破折号(em dash)、连接号(en dash)与连字符(hyphen)的区别及各自用法是什么?

    英文破折号(em dash).连接号(en dash)与连字符(hyphen)的区别及各自用法是什么?在科技写作中有何特点?   2 条评论 分享   按票数排序按时间排序 6 个回答 赞同85反对, ...

  4. thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)

    原文:thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成(十五) 本章节:详细介绍thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成 一.URL ...

  5. C#重的数组、集合(ArrayList)、泛型集合(list<T>)三者比较及扩展延伸……

    本来我只想总结下数组.集合(ArrayList).泛型集合(list<T>)三者的比较的,可以一写下来要扩展的知识点有点多了,只能写一个小的知识点列表了如下: 1.数组.集合(ArrayL ...

  6. 救援模式(Rescue Mode)、单用户模式(Single-User Mode)、紧急模式(Emergency Mode)的区别与联系

    前天聚餐的时候一航和启飞学长讲到RUCTF中更改root密码要进入单用户模式,我插了一句"有的系统显示的是救援模式",说完后心里一直很虚...(技术上的事还是想好再说)今天查了一下 ...

  7. easyui datagrid 表头固定(垂直滚动条)、列固定(水平滚动条)

    easyui datagrid 表头固定(垂直滚动条).列固定(水平滚动条),每页显示1000行 最近用多了easyui 之后还是觉得它的功能还是很强大的.它原有的功能就已经能够满足90%以上的界面需 ...

  8. 详解 CAP 定理 Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)

    CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. 分布式 ...

  9. 28、初识socket(subprocess模块)

    经过近一个半月的学习我们已经度过了python基础的阶段,今天我们开始学习python网络编程,没有难以理解的逻辑,更注重的是记忆. 本篇导航: 客户端/服务器架构 scoket与网络协议 套接字 基 ...

随机推荐

  1. ASM文件系统

    1.确认数据库版本 2.个人理解的存储解决方案的发展趋势 2.1图示说明 2.2图示描述 如上图我们描述了在不同时期的IT行业(数据库)出现的存储文件系统,下面我们将分别说明: ü  裸设备:所谓裸设 ...

  2. 2016HUAS暑假集训训练2 K - Hero

    题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/K 这也是一道贪心题,刚开始写时以为只要对每一敌人的攻击和血的乘积进行从小到大排序即 ...

  3. scrum站立会议学习

    项目:连连看游戏 小组名称:临时小组 组长:张政 小组成员: 李权 武志远 张政 张金生 MASTER:张政 会议内容: 一.已完成项: 1.根据先前的安排和计划完成了项目主要环境的搭建,配置好了基本 ...

  4. 上传下载后台函数以及前端脚本(webuploader) 备份

    import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; import ...

  5. NPOI简单操作excel

    本文仅当是个记录文件,仅供初学者参考. 首先得using几个npoi的空间名如下: using NPOI.HSSF.UserModel;using NPOI.HSSF.Util;using NPOI. ...

  6. ubuntu下wine安装软件

    安装wine 1. sudo apt-get install playonlinux playonlinux就是wine.或者在软件中心,搜索wine. 2. 在dash搜索playonlinux 安 ...

  7. objective-c基础教程——学习小结

    objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...

  8. Thinking in Java——笔记(6)

    Access Control A piece of work isn't good until it's been rewritten, often many times. Thus a primar ...

  9. iOS中集成ijkplayer视频直播框架

    ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijk ...

  10. memcache的windows下的安装和简单使用

    原文:memcache的windows下的安装和简单使用 memcache是为了解决网站访问量大,数据库压力倍增的解决方案之一,由于其简单实用,很多站点现在都在使用memcache,但是memcach ...