在定位第一个栏目并模拟点击时,无法使用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 restr1 = '<span data-reactid="21$55012701000001">200</span>'
result = refindall(r'<span data-reactid="21\$55012701000001">(\d+)</span>', str1)
print(result)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)