selenium 在业内对于页面测试算是杠把子了, 但对于有些功能使用起来就不好使啊。对于这种不好使的功能,解决起来就麻烦。像这种弹出框的功能, 只能对alert 标签生效。但现在的前端都是五花八门的, 使用这个alert就没法用。像一些关闭弹出框,就对于不是alert标签写的弹出框就没法操作生效。只得使用通过定位到关闭的按钮,进行关闭操作。还有就是对于一些复杂的操作,没在页面上显示的, 直接用selenium 提供的方法来操作,也无法实现。还得借助于普通的js操作元素那样去搞。就像那个页面鼠标移过去才能显示,移走消失的,要点击操作的话。只能通过js来拿到对应隐藏的元素,进而进行点击操作。直接用selenium 的xpath定位,click操作的方式是会报错的。会抛出ElementNotVisibleException异常。只能使用js来做对应的操作。
from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.baidu.com") # js点击hidden元素 js = 'document.getElementById("baidu").click()' driver.execute_script(js)
其实还有些,selenium的操作是实现不了。后面遇到了,再记录吧。
吐槽归吐槽,selenium还是为自动化测试展现了自己的一席之地,虽然不算很完美,存在即合理。