前言
最近在用Selenium测试的时候遇到的一些问题,点击不了,获取不到等等原因,明明已经写对了xpath,但是还是获取不到,也点击不了的一系列问题。本文包含了如何对iframe处理、如何对混乱顺序的元素处理、如何对点击被遮盖住的元素处理、如何切换Tap页面操作等等💨💥
1、章节循序混乱点击问题
任务 —> li[1]
章节 —> li[2]
讨论 —> li[3]
作业 —> li[4]
考试 —> li[5]
如何点击章节呢?
大家的做法肯定是直接copy xpath了🙈
/html/body/div[1]/div[3]/div[1]/div/ul[1]/li[2]
那么问题来了,如果这个章节要是把位置换了呢?比如说我把这个章节换到讨论下面,这个章节的li还会是li[2]吗?就是li[3]了,如果直接写死的话就用不了啦。
所以我们就需要获取到a标签的title,先拿到这个ul,然后获取里面的li总数,然后我们循环这个li总数,再通过.get_attribute(“title”)获取a标签里面的title文本内容,再判断如果title="章节"的话,就点击这个xpath就可以了。如果要点击考试就把if条件改成="考试"就好了💨
代码如下:
li_zj = self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div/ul')
a_zj = li_zj.find_elements_by_xpath('li')
for i in range(1,len(a_zj)+1):
chapter_li = self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div/ul[1]/li['+str(i)+']/a').get_attribute(