selenium 万能的xpath

 

做下笔记就是想记录一下最近用的定位方法,首先是前端开发的小伙伴,id 几乎没有,那就只能自己想办法减少工作量了

 


1、首先是contains,这个对于文本有点太好用

 

get_element(driver, ('xpath', "//button[contains(text(),'停止描点')]")).click()

2、还是通过标签进行@xxx

 

 

get_element(driver, ('xpath', "//button[@class='btn btn-danger']")).click()

3、就是 id 、class_name等等的一些列不常用的,就不说啦

如何 通过 平级 元素定位呢 preceding-sibling 等 还是自己实践夏关键字如下图

get_elements(self.driver, ('xpath', "//a[@title='查看']/preceding-sibling::span[contains(@id,'check')]"))[i].click()

 

关键在上面

示例:

//div[contains(text(),'产证地址')]/parent::td

//td[@width='16%']//child::div

//div[contains(text(),'产证地址')]//ancestor::table

//td[@width='50%']/descendant::p

//td[@width='50%']/following::div[contains(text(),'行政区域')]

//p[text()='物业信息']/following-sibling::p[@id='ownerPart']   通过前面 定位后面

//p[text()='出售方信息']/preceding-sibling::p[contains(text(),'物业信息')]  通过后面,定位前

//p[text()='出售方信息']/preceding::div[contains(text(),'拟定网签价')]

 

光标移动至元素位置

self.driver.execute_script("arguments[0].scrollIntoView();", get_elements(self.driver, ('xpath', "//a[@title='查看']/preceding-sibling::span[contains(@id,'check')]"))

光标置顶

driver.execute_script("window.scrollTo(0,0)")

升级了firefox 到63 使用input标签 send_keys(path)不行了,大约了解下是因为安全权限的问题,目前的解决方案是把标签改为可显

这么玩就行了

readonly 解决方案

var rs = document.querySelectorAll("input[readonly='readonly']");
        for(var i = 0; i < rs.length; i++){
            rs[i].readOnly = false;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值