selenium之HTML元素无法定位

本文主要是记录一些在做自动化过程中,无法定位的一些元素,因为对HTML理解不深,所以遇到的坑需要一一化解,后续遇到的会陆续记录。

 

一、a标签的href属性值等于javascript:void(0)

1.首先解释下javascript:void(0),javascript是网页的脚本语言之一,而void是javascript的操作符,意思就是只执行表达式,但是没有返回值(在C、java等语言中void也是没返回值),更直白的就是点了跟没点是一样的。举例说明一下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>测试a标签</title>
</head>
<body>
<div>
<a href="javascript:void(0)" id="abc">测试</a>
</div>
</body>
</html>

 

以上代码,用浏览器打开,点击“测试”链接,可以看到页面中不会有任何反应,所以在定位遇到javascript:void(0)时,千万要注意实际操作一下,不要一昧的写代码,却发现一直实现不了操作。当然并不仅仅是javascript:void(0),还有其他:

(1)<a href="javascript:;" id="abc">测试</a>    与javascript:void(0)效果一致

(2)<a href="####" id="abc">测试</a>   几个#无所谓

但是:

为什么说但是呢?因为你在实际操作中,发现a标签使用了javascript:void(0),也会跳转url啊,这是为什么?因为强大的JS脚本,下面来个简单示例:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>测试a标签</title>
</head>
<body>
<div>
<a href="javascript:void(0);" id="abc">测试</a>
</div>
<script src="jquery.min.js"></script>
<script type="text/javascript">
$("#abc").click(function(){
window.open("http://www.baidu.com","_self")
})
</script>
</body>
</html>

以上示例,主要是a标签使用了javascript:void(0),但是还可以用js来控制点击事件,为什么这么麻烦呢?直接把url写在href属性里就搞定啦,这是因为多种情况下的请求,url会变,所有用js可以拿到不同的url去请求。再次解释一下,虽然这个很简单还要这么啰嗦,主要是为了说明为什么,从根本理解。

 

二、style=display:none

同样的解释一下:

display:none ---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失,通俗来说就是看不见也摸不到。注意,是说页面上彻底消失,不代表HTML中消失啊,在使用定位的时候,隐藏的元素也是可以找到的,但对元素操作就会抛出异常

SO,在Selenium定位的时候可要注意了,不要看到元素就定位,运行一直报错,然后检查定位没错啊,结果搞得烦死。

举例:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值