如何判断网页是否有勾选
在华为实施过程中有一个场景。要循环去遍历网页上的数据并和表格里的数据做匹配,如果匹配到,判断 excel 表格里的值是 y 还是 n, 若是 y 则要在后面的小方框内打上对勾,若是 n,则不打对勾。
难点分析:
如何判断网页上原本的位置是否打上了对勾。这就要抓取相应位置,看返回的 string 里面,有没有字符串 CHECKED.
1. 如何取出 string 的值:(引用林总之前写过的帖子)
import ubpa.iie as iie
table_string = iie.get_html(title=r'CDA会话搜索',selector=r'TABLE[class=lineTable][cellspacing=0][cellpadding=0]')
print(table_string)
##selector 可以用鼠标点击控件来拾取
以华为为例子。下面是代码:
xst = 'ChECKD'
n = 1
while n < 2:
n=n+1
num=2
num_o=0
num_t=num_o+num
list_web=[]
while num_o <= 9: ###每页要比对10个数据
b = iie.get_text(url=r''用获取文本,将位置位设置为变量,循环去获取)
num_o = num_o+1
num_t = num+num_o
if list_web != (""):
list_web.append(b)
else:
break
print(liset_web)
for value in liset_web: #循环网页中获取到的数据
if value in list_excel #判断获取到的数据是否存在于excel表里
lll=list_web.index(value) #若存在,表示出是网页的第几条数据
rrr=list_excel.index(value) #判断是excel表里的第几条数据
talbe_string = iie.get_text(用林总的办法获取到返回的string值)
talbe_True = xst in talbe_string #判断返回来的string值里是否存在'CHECKD',会直接返回True或者Flase
if not talbe_True: #返回值若不是True,则没有CHECKD,则做点击的动作
lie.do_click_pos(注意改变位置位,这就是为何要获取在网页的第几个) #鼠标点击方框,获取到的代码
list_excel.pop(rrr) #删除掉查找到数据在excel的获取中,防止多次获取,且为空是跳出循环
if list_excel==[]: #若获取到的excel为空,跳出for循环
break
最好以拍照或文字的方式展现运行结果,如第一步获取到什么样的数据,在这个基础上运行你的代码又可以得出什么样的效果,这样会更直观哈。方便的话记得补充下哈