Selenium WebDriver 问题疑答(Q&A)


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、ipython打开着,关闭进程,重启firefox、ipython

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。

文件路径:Jenkins安装目录中的 jenkins.xml

  1. <arguments>-Xrs -Xmx256m -Dfile.encoding=utf-8 -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

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

如下图:


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

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

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

来自为知笔记(Wiz)

Selenium WebDriver 问题疑答(Q&A)

时间: 2024-12-13 19:15:59

Selenium WebDriver 问题疑答(Q&A)的相关文章

开源应用架构之?Selenium WebDriver(上)

前不久,InfoQ向大家推荐了几本有关 软件架构的新书,引起了国内读者的广泛兴趣.其中一本是< 开源应用架构(The Architecture of Open  Source  Applications)>, 来自知名开源项目的各位作者对软件的设计进行了说明.通过对这些成功的系统架构进行概览,让软件工程师可以彻底了解最佳实践和陷阱.InfoQ中文站响应 读者的需求,整理了该书有关知名开源软件架构的精彩内容,供国内开发社区借鉴.本期介绍的是著名浏览器自动化工具Selenium   WebDriv

Selenium WebDriver使用IE浏览器(转)

转自:http://smilejay.com/2012/09/selenium-webdriver-with-ie/ 如下的Java代码是打开IE浏览器,然后在Google中搜索“smilejay”关键字. [Copy to clipboard] JAVA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package com.sele

python selenium webdriver处理浏览器滚动条

用键盘右下角的UP,DOWN按键来处理页面滚动条 这种方法很灵活用起来很方便!!!! from selenium import webdriver import time from selenium.webdriver.common.keys import Keys #访问百度 driver=webdriver.Chrome() driver.get("http://www.baidu.com") #搜索 driver.find_element_by_id("kw"

转载 基于Selenium WebDriver的Web应用自动化测试

转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中,需要大量的手动操作来验证某些功能.开发人员在开发过程中,需要访问其应用并且验证其功能是否正常运行,反复调试重复验证.系统维护人员也需要经常访问其应用,以确保系统的正常运行.如上所述的这些操作需要花费大量的时间和人力,如能引入自动化测试代替人工重复操作,将极大地提高团队的生产效率.在本文中,我们将介绍

selenium webdriver学习(一)------------快速开始(转载JARVI)

selenium webdriver学习(一)------------快速开始 博客分类: Selenium-webdriver selenium webdriver 学习 selenium webdriver学习历程(一)------------快速开始 学习selenium已经两年了,从1.X到2.X,一直在关注它.中间由于工作原因中断了一段时间,但是一直无法割舍,最近又去官网看了一下,更新还挺快的.selenium1.X的时代将被取代,selenium-webdriver的大航海时代开始了

selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面(转)

selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面 博客分类: Selenium-webdriver 元素拖放drag and drop Q群里有时候会有人问,selenium  webdriver怎么实现把一个元素拖放到另一个元素里面.这一节总一下元素的拖放. 下面这个页面是一个演示拖放元素的页面,你可以把左右页面中的条目拖放到右边的div框中. http://koyoz.com/demo/html/drag-drop/drag-drop.

Selenium - WebDriver Advanced Usage

Explicit Waits # Python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 from selenium.webdriver.support import expected_conditions as EC # avai

Selenium - WebDriver: Page Objects

This chapter is a tutorial introduction to page objects design pattern. A page object represents an area in the web application user interface that your test is interacting. Benefits of using page object pattern: Creating reusable code that can be sh

selenium webdriver (python)大全

webdriver的简介 硒2.0的主要新功能是集成的webdriver的API.webdriver的设计除了解决一些seleniumr-RC API的一些限制,与webdriver 的整合,将提供一个更简单,更简洁的编程接口.selenium webdriver会更好地支持动态的网页,页面本身被重新加载页面元素可能更改.webdriver的目标是提供一个设计良好的面向对象的API,提供了更好的支持现代先进的web-app测试. WebDriver与Selenium-RC相比,是如何来驱动浏览器