selenium自动化,已经定位到A标签的位置,但是点击A标签时不执行后台的js方法。

selenium自动化,已经定位到A标签的位置,但是点击A标签时不执行后台的js方法。,第1张

在定位第一个栏目并模拟点击时,无法使用click方法,原来是左边的图标遮挡了a标签,导致无法点击。

driverfind_element_by_xpath("//a[text()='xxx']")click()

这个时候要使用ENTER方法:

from seleniumwebdrivercommonkeys import Keys

driverfind_element_by_xpath("//a[text()='xxx']")send_keys(KeysENTER)

扩展资料

Firebug和Firepath,基本上足够你去定位元素了,如果你对XPATH熟悉,Firebug一个就足够了。

主要的定位方式:id,name,identifier,js,link,css如果这些都不行,那么用xpath几乎能百发百中的

能用固定的属性,比如id,name(当然要唯一),tagname等的,尽量去用。没办法了再用XPATH,这样后期维护会省很多力气,减少因为程序员调皮改代码影响你的脚本。

开源和价格不谈以外,QTP有keyword view不会编程的照样做自动化,webdriver就会傻瞪眼,除非谁还把seleniumIDE挖出来玩玩。

这里好像有个bug的。以前讨论过。
原本的思路应该是先获取到当前句柄的数量,然后switchTo最后一个,然后driverquit();
但是实现起来你会发现quit之后,driver==null了。所以使用了driver的话会报空指针。

解决办法:
使用seleniumwebdriverremotewebelementWebElement提供的get_attribute方法。
通过get_attribute拿到该a标签的各种属性,通过判断找到符合要求的元素进行点击。
get_attribute("href") 得到a标签对应的目标页面的URL,对URL进行判断就可以了解到该页面是否站内页面。我们可以知道,如果是站内页面的话这个属性一般会是一个相对路径,或者包含了本站域名,但如果是站外页面的话,那它一定是包含了“>1通过selenium定位方式(id、name、xpath等方式)定位table标签
#html源码<table
border="5"
id="table1"
width="80%">#selenium *** 作代码table1=driverfind_element_by_id('table1')
2获取总行数(也就是获取tr标签的个数)
#html源码<tr><th>姓名</th><th>性别</th></tr>#selenium *** 作源码
table_rows
=
table1find_elements_by_tag_name('tr')
3获取总列数(也就是tr标签下面的th标签个数)
#html源码<tr><th>姓名</th><th>性别</th></tr>#selenium *** 作源码:第一个tr标签下有多少个th
table_rows
=
table_rows[0]find_elements_by_tag_name('th')
4获取单个cell值
#selenium *** 作源码:第一行第二列的text值row1_col2
=
table_rows[1]find_elements_by_tag_name('td')[1]text
5取值比对~

selenium对iframe的 *** 作有三种,分别是id,name,元素定位。

如图上所示,iframe标签里有id的话直接用id定位即可

如图上所示,iframe标签里有name的话直接用id定位即可

页面找到class值为'x-iframe'第二个iframe页面

一层层跳进去

跳出iframe

使用正则,引入re包

import re
str1 = '<span data-reactid="21$55012701000001">200</span>'
result = refindall(r'<span data-reactid="21\$55012701000001">(\d+)</span>', str1)
print(result)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13375086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存