Python断断续续学了有一段时间了,总感觉不找个小项目练练手心里没底,哪成想出门就遇到“拦路虎”,一个脚本刚写完就运行报错,还好做足了心里准备,尝试自行解决。

或许网上有相关解决方案,不过毕竟自己亲自上手实操了,有的问题还是有必要记录下来加深印象,于是就有了这篇短文。

背景:访问禅道首页,通过第三方QQ账号与密码手动输入登陆。

代码:

 # coding:utf-8
from selenium import webdriver
import time driver = webdriver.Firefox()
driver.get('http://www.zentao.net/ ') driver.find_element_by_link_text('登录').click()
driver.find_element_by_class_name('qq').click()
driver.find_element_by_css_selector('#switcher_plogin').click()
driver.find_element_by_id('u').send_keys('*******')
driver.find_element_by_id('p').send_keys('*******')
driver.find_element_by_id('login_button').click()
time.sleep(10) driver.quit()

学习了元素定位几种方式,所以利用link_text 、  class_name 、  css_selector 、  id四种方式,不过执行时却提示selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":"#switcher_plogin"}

也就是说第10行代码有问题,不能通过css_selector方式定位到"#switcher_plogin"这个元素。

虽然检查了元素的唯一性,也尝试通过其他如xpath 、 name等方式进行定位,但是使用运行到这块报错。仔细回想了之前看的示例登陆126邮箱的过程,有个iframe的方式进行定位,于是参考进行了尝试。

不过由于对示例的没有深入了解,照猫画虎也出了糗。原例中查看是,相应代码是

driver.switch_to.frame('x-URS-iframe')

于是我在开头代码的第9至10行插入了相同代码,结果可想而知,依然报错,只是提示信息变成了Unable to locate element:x-URS-iframe。

这时候再来查看禅道第三方qq登陆的地方,原来还是有区别的,于是修改相应的代码为

driver.switch_to.frame('ptlogin_iframe')

此时再运行才正常通过。

虽然没什么技术难度,但还得心细,了解代码的真正含义,再去尝试写,不能照搬照抄。

最后附上完整代码,为接下来的尝试做准备~

 # coding:utf-8
from selenium import webdriver
import time driver = webdriver.Firefox()
driver.get('http://www.zentao.net/ ') driver.find_element_by_link_text('登录').click()
driver.find_element_by_class_name('qq').click()
driver.switch_to.frame('ptlogin_iframe') # 通过frame方式定位
driver.find_element_by_css_selector('#switcher_plogin').click()
driver.find_element_by_id('u').send_keys('*******')
driver.find_element_by_id('p').send_keys('*******')
driver.find_element_by_id('login_button').click()
time.sleep(10) driver.quit()

Message:Unable to locate element 问题解决方法的更多相关文章

  1. 元素无法定位问题 NoSuchElementException: Message: no such element: Unable to locate element 解决方法

    定位网页上某个按钮时,总是报错元素定位不到,具体如下:NoSuchElementException: Message: no such element: Unable to locate elemen ...

  2. 解决Selenium弹出新页面无法定位元素问题(Unable to locate element)

    Python 2.7 IDE Pycharm 5.0.3 环境细节详见Python+Selenium+PIL+Tesseract真正自动识别验证码进行一键登录 对于同一页面无法定位元素问题请见姊妹篇解 ...

  3. org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element

    org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element(识别不到想要的元素) 想获取 ...

  4. 关于xpath语句完全正确,但是页面报错: no such element: Unable to locate element: {"method":"xpath","selector":"xpath"}

    之前使用selenium-webdriver来写UI的自动化脚本,发现有一个元素一直无法定位,查看其源码,如下 利用xpathChecker验证了xpath语句的是正确的,但是控制台一直报错: no ...

  5. Selenium定位不到指定元素原因之iframe(unable to locate element)

    浏览过程中,图片中的内容可能太小,无法看清,可以>右键>在新标签中打开 Outline 项目原因,需要用selenium实现模拟登陆.模拟上传文件,自然就需要模拟点击[上传]按钮: 模拟点 ...

  6. selenium+python,解决selenium弹出新页面,无法定位元素的问题(报错:Unable to locate element:元素)

    1.问题发生描述: 从一个页面进行点击等操作,页面跳转到第二个页面,对第二个页面中的元素,采取任何措施定位都报错,问题报错点如下: 2.出现问题的原因: 窗口句柄还停留在上一个页面,对于当前新弹出的页 ...

  7. 如果遇到找不到元素如何处理? Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"id","selector":"investmentframe"}

    常见几种原因与应对,详细参见http://www.blogjava.net/qileilove/archive/2014/12/11/421309.html 1,动态ID无法找到,用xpath路径解决 ...

  8. Apache Ant运行时Unable to locate tools.jar解决方法

    下载Apache Ant 一.解压ant安装包在D:\ant下 二.环境变量配置 ANT_HOME D:\ant\apache-ant-1.9.0 CLASSPATH ;%ANT_HOME%lib; ...

  9. The Eclipse executable launcher was unable to locate its companion launcher jar的解决方法

    大家都知道eclipse是免安装的,基本上解压就能用,但是笔者在解压后打开eclipse时遇到一个奇葩的问题,如题目所示. 在网上搜了半天,基本上都说的是:The Eclipse executable ...

随机推荐

  1. web中转发、重定向等问题的路径

    web中常用路径,转发,重定向,form表单action的路径 路径的写法: a.绝对路径写法:ServeltContext都必须用绝对路径."/" b.相对路径:其他情况都可以使 ...

  2. zoj3777 Problem Arrangement

    The 11th Zhejiang Provincial Collegiate Programming Contest is coming! As a problem setter, Edward i ...

  3. 挖个坑,写一个Spring+SpringMVC+Mybatis的项目

    想挖个坑督促自己练技术,有时候想到一个项目,大概想了一些要实现的功能,怎么实现.现在觉得自己差不多能完成QQ空间的主要功能了.准备立个牌坊,写一个类似功能的网站.并且把进度放到这里来. 初步计划实现以 ...

  4. Struts配置的各种视图转发类型

    上面是struts1的视图转发2中类型:1.内部请求转发(来定向到某个视图):2.浏览器重定向(来定向到某个视图). 浏览器重定向(直接访问路径)不能访问WEB-INF的jsp文件,只有服务器内部转发 ...

  5. python进阶学习(二)

    本节学习图形用户界面 ------------------------ 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地 ...

  6. JavaScript--我发现!原来你是这样的JS(1)

    一.前言: 前段时间看红宝书(JavaScript高级程序设计),但没有计划的去看,也没有做详细的笔记,读了之后有点空虚,感觉不对劲啊,学的东西很难记住,印象不深啊,有种挫败感,作前端的js都学不好怎 ...

  7. mysql存储过程 基本语法

    话不多说 一.MySQL 创建存储过程 "pr_add" 是个简单的 MySQL 存储过程,这个存储过程有两个 int 类型的输入参数 "a"."b& ...

  8. Net分布式系统之七:日志采集系统(1)

    日志对大型应用系统或者平台尤其重要,系统日志采集.分析是系统运维.维护及用户分析的基础. 一.系统日志分类 一般系统日志可分为三大类: 1.用户行为日志:通过采集系统用户使用系统过程中,一系列的操作日 ...

  9. Bootstrap框架菜鸟入门教程

    Bootstrap菜鸟入门教程 Bootstrap简介 Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简 ...

  10. 团队作业4——第一次项目冲刺(Alpha版本) 日志集合处

    第一天(2017.4.23) http://www.cnblogs.com/1413none/p/6752325.html 第二天(2017.4.24) http://www.cnblogs.com/ ...