selenium中用js定位html上没有id,没有name的元素

所测试的页面包含display:none的元素,所以考虑用js,在使用js的过程中,js要获得页面的对象,没有id,没有name

......

<a class="employer" href="javascript:;">

XXX1

<i class="icon-arrow icon-arrow-down"></i>

</a>

<div class="dropdown-menu" style="display: none;">

<dl>

<dd>

<a target="_blank" href="/XXX">发布</a>

</dd>

<dd>

<a class="employer" href="javascript:;">个人中心</a>

</dd>

.............

JavascriptExecutor j=(JavascriptExecutor)driver;

j.executeScript("document.getElementsByClassName(‘dropdown-menu‘)[0].style.display=‘block‘;");    //没有id,没有name,可通过classname来获得,页面中只有一个class为dropdown-menu,所以要写成【0】

driver.findElement(By.cssSelector("........")).click();

时间: 2024-10-13 01:39:54

selenium中用js定位html上没有id,没有name的元素的相关文章

selenium 定位 页面上两个完全一样的元素

在测试过程中发现页面上有两个保存按钮的元素的xpath一模一样,如下图: google了好久才找到解决办法,发现自己还是比较弱!!!解决方法如下: selenium.click("xpath=(//button[.='保存'])[last()]"); 使用 last() 这个函数(我去,xpath还支持函数!!!) 其它函数请查看下面的网页:http://automationtricks.blogspot.com/2010/09/how-to-locate-element-which-

【复习】selenium中用Xpath定位

一.基础属性定位id/class/name百度一下按钮://input[@id="su"]* text()定位更多产品链接定位://*[text()="更多产品"] 二.索引过滤当定位出现多个兄弟结果时,可以索引过滤,坐标从1开始,最后用last()新闻链接://a[@class="mnav"][1] 学术链接 //a[@class="mnav"][last()] 三.逻辑运算定位新闻链接://a[@class="m

jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作) 经典

1.锚点跳转简介 Edit 锚点其实就是可以让页面定位到某个位置上的点.在高度较高的页面中经常见到.比如百度的百科页面,wiki中的page内容. 我知道实现锚点的跳转有两种形式,一种是a标签+name属性:还有一种就是使用标签的id属性.百度百科就是使用a标签的name属性来实现锚点跳转的. 比如: <a href="#2">波轮洗衣机介绍</a> <a name="2"></a> 但是上种方法使用了一个空标签,而且

Python + Selenium(三)网页元素定位(二)id 定位

了解了开发者工具和 HTML 结构 后,接下来,就来看看在 Python + Selenium 中如何查找元素了. 查找元素,是 WebDriver 中的核心部分之一.WebDriver提供了八种定位方法,方法如下: 定位方式 方法 说明 id find_element_by_id() 使用 id 属性定位 name find_element_by_name() 使用 name 属性定位 class_name find_element_by_class_name() 使用 class 属性定位

Python selenium的js扩展实现

python写的数据采集,对一般有规律的页面用 urllib2 + BeautifulSoup + 正则就可以搞定. 但是有些页面的内容是通过js生成,或者通过js跳转的,甚至js中还加入几道混淆机制:对这种涉及页面脚本解析的内容,前面的方式便很无力. 这时我们需要能解析.运行js的引擎——浏览器,而python selenium能提供程序与浏览器的交互接口,再加上phantomjs这个可以后台运行的浏览器,即使用 selenium + phantomjs 便可以解决以上的问题. seleniu

用XPath精确定位节点元素&amp;selenium使用Xpath定位之完整篇

在利用XSL进行转换的过程中,匹配的概念非常重要.在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select = "" 中,用引号括起来的部分必须能够精确地定位节点.具体的定位方法则在XPath中给出. 之所以要在XSL中引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素.可以把XPath比作文件管理路 径:通过文件管理路径,可以按照一定的规则查找到所需要的文件

[小北De编程手记] : Lesson 04 - Selenium For C# 之 API 上

这一部分,我准备向大家介绍Selenium WebDriver的常用API,学习这部分内容需要大家最好有一些简单的HTML相关知识,本文主要涉及到以下内容: Selenium API:元素检查 Selenium API:事件处理 Selenium API:其他操作 Selenium API:框架扩展 回顾一下我之前讲过的一个概念:所谓自动化测试,可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.从框架设计的角度来讲,一个自动化测试框架的驱动程序应该向使用者提供“元

Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)

目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次更新已经比较久了^_^! formidable简介 nodejs原生实现上传还是比较麻烦,有兴趣的自已去参考一下网上有网友写的代码 这里选择了formidable,也是githu

[Asp.net mvc]jquery.form.js无刷新上传

写在前面 最近在自己的网盘项目中想用ajax.beginform的方式做无刷新的操作,提交表单什么的都可以,但针对文件上传,就是个鸡肋.在网上查找了发现很多人都遇到了这个问题,大部分都推荐使用jquery.form.js的插件实现. demo 首先通过nuget安装插件jquery.form.js 引入js文件 <script src="~/Scripts/jquery.form.min.js"></script> 前端调用的代码 @{ ViewBag.Titl