Selenium2+Python3.6实战(八):定位下拉菜单出错,如何解决?用select或xpath定位。

在登录界面,有时候会有几种不同的角色,针对不同角色定位到的信息是不一样的。查询资料知道定位下拉框的元素有两种方式:Xpath和select。

但是使用xpath定位时,user定位到了,登录的时候却是调用的administrator,很是费脑。几经周折,终于解决了。

1.关于user用户xpath定位:用selenium IDE录制了登录过程,查看代码才发现并没有定位到user上,而是直接输入密码登录的。这让我想到,user是默认的用户,当进入登录界面时,网页默认的用户就是user,所以可以省略到定位这一步,但是这不是解决的根本方法。用IDE录制过程后再查看代码对比,可以用来作为以后排查问题的一种方式。

2.采用select定位

在网上看到一些资料说xpath对下拉框定位并不是很好取的,比如当代码里变化了选项的顺序,那么又需要重新来写脚本,这是很不稳定的。而我用了几次select来定位,参考了网上的代码,怎么都不成功,每次都报错。

才知道用select需要注意几点:

1)先导入select模块; 2)select只对<select>标签下的内容才有效; 3)先定位到<select>标签,再通过index、value或者选项的文字来确定选项。

下面是我跑成功的代码:

亲测是没有问题的,只要记住前面注意的3点就能成功了。

附上非<select>标签下拉菜单定位方法:

时间: 2024-08-08 22:09:50

Selenium2+Python3.6实战(八):定位下拉菜单出错,如何解决?用select或xpath定位。的相关文章

selenium定位下拉菜单好文

http://www.cnblogs.com/nbkhic/archive/2011/10/23/2221726.html 定位下拉菜单

selemiun 下拉菜单、复选框、弹框定位识别

一.下拉菜单识别 对下拉框的操作,主要是通过Select 类里面的方法来实现的,所以需要new 一个Select 对象(org.openqa.selenium.support.ui.Select)来进行操作 public void selectDemo() throws InterruptedException { driver.get("http://tieba.baidu.com/f/search/adv?red_tag=v3168911135"); driver.manage()

Bootstarp学习(八)下拉菜单

下拉菜单(基本用法) 小伙伴们注意,在Bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,它对应的文件: ?  LESS版本:对应的源码文件为 dropdowns.less ?  Sass版本:对应的源码文件为 _dropdowns.scss ?  编译后的Bootstrap版本:查看bootstrap.css文件第3004行-第3130行 在使用Bootstrap框架的下拉菜单时,必须调用Bootstrap框架提供的bootstrap.js文件.当然,如果你使用的是未编译版

Rails Bootstrap dropdown下拉菜单没反应解决方法

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff } span.s1 { } Mac环境 Rails 5.1.4 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff } span.s1 { }

rf中关于下拉菜单的选择

刚才在使用rf模拟QQ注册的时候,遇到了出生年月日等下拉菜单的选择. 之前混迹于rfs群里,经常能见到select from list by value/label 的关键字,所以尝试了一下. 结果不太理想,去社区搜寻了一下,发现这个下拉菜单不是标准的select下拉菜单,所以改用click element关键字,定位到需要的选项就好了. 其实在webdriver里面遇到下拉菜单也是直接定位然后点击的. 在选择的过程中发现年份的下拉菜单比较长,可能要选择的年份在界面不可见的地方,也就是需要下拉滚

ajax实现级联下拉菜单

ajax实现级联下拉菜单非常简单,下面是一个用ajax实现的省市级联的下拉菜单: jsp中在<select>中添加onchange事件,触发该事件调用实现ajax的js: <div> <form action="Pcs" method="post"> 所在省:<select name="pro" id="pro" onchange="chCity();"> &

javascript模拟select下拉菜单

javascript模拟select下拉菜单: 由于自带的select下拉菜单确实是不够美观,并且美化的潜力也不够大,所以对外观要求比较高的网站,基本都要使用自定义的select下拉菜单,下面就提供了一个简单的例子供大家参考,代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="

太纯净了,得加下拉菜单

目录 太纯净了,得加下拉菜单 问题: 解决: 第一步: 第二步: 说明: 太纯净了,得加下拉菜单 问题: 纯净过头,找原来的一些链接不方便了. 解决: 第一步: 点击我的博客之中的"管理",或者点击这里: 管理 再点"设置",博客侧边栏公告(支持HTML代码) 申请JS权限下面,有个:页首 HTML 代码 这个地方加代码,在网页加载的时候,会加到代码头部去. 相当于代码"注入"头部. 第二步: 复制进以下代码: <!DOCTYPE html

Web标准:八、下拉及多级弹出菜单

Web标准:八.下拉及多级弹出菜单 知识点: 1.带下拉子菜单的导航菜单 2.绝对定位和浮动的区别和运用 3.CSS自适应宽度滑动门菜单 1)带下拉子菜单的导航菜单 带下拉子菜单的就是在一级导航下加一个二级菜单.这个在上一节第七节课上我已经做出来了,这里就不再写了.再重温一下注意点:如果要在一级菜单下增加二级菜单,二级菜单需要加一个float:none;来去掉浮动,否则二级菜单也会浮动到一行上去了. 2)绝对定位和浮动的区别和运用 绝对定位:它的位置将依据浏览器左上角开始计算或相对于父容器(在父