di7gan 发表于 2021-11-20 09:55

python 使用 selenium 的 xpath

现在在使用python 使用 selenium 的 xpath 进行操作网页,

问题如下:
我点击某个位置后,可能出现弹窗或者不出现弹窗,这个时候我需要一段代码去判断弹窗是否出现,因为没有弹窗使用了弹窗里面代码,pythone会报错停止程序。
请问:有没有直接可以调用的检查判断。
如果用遍历的方法,感觉就是效率太低下。

初学者还请不吝赐教!谢谢!

楚子沦i 发表于 2021-11-20 10:25

就是你可以在点击后加个元素获取,能获取到就是有,获取不到就是没有呗

蓝风 发表于 2021-11-20 11:01

try一下?

xuyincheng 发表于 2021-11-20 11:03

本帖最后由 xuyincheng 于 2021-11-20 11:05 编辑

你用代码前不判断元素是否存在吗...,
直接xpath定位元素又不是重新遍历一遍!

pzx521521 发表于 2021-11-20 11:09

想懒可以用3L的办法 try
正常这样使用:判断是否为none即可
example:
if html.xpath("//li[@class='item-inactive']/a") == none:

我今天是大佬 发表于 2021-11-20 14:00

try 判断一下有没有就行了

i9420 发表于 2021-11-20 15:09

弹窗的那个窗口好像是需要切换过去的..

用switch 要不检测不到的.

luyers 发表于 2021-11-21 18:24

try:
    browser.switch_to.alert.accept()
except:
    pass

di7gan 发表于 2021-11-22 13:13

pzx521521 发表于 2021-11-20 11:09
想懒可以用3L的办法 try
正常这样使用:判断是否为none即可
example:


谢谢,用了你代码里面的代码,挺好用。

di7gan 发表于 2021-11-22 14:04

本帖最后由 di7gan 于 2021-11-22 14:06 编辑

i9420 发表于 2021-11-20 15:09
弹窗的那个窗口好像是需要切换过去的..

用switch 要不检测不到的.
请问我要从这个

//*[@id="comments"]/div/ol

将下面的数量,提取到list中去呢?这样就能从len(list)就知道有多少个子元素了

//*[@id="comments"]/div/ol/li
//*[@id="comments"]/div/ol/li
//*[@id="comments"]/div/ol/li
页: [1]
查看完整版本: python 使用 selenium 的 xpath