测试必须在时间、质量和成本之间获取一个平衡点,这是测试策略和测试设计的价值体现。

2.26 js解决click失效问题

上一篇 / 下一篇  2018-06-12 10:55:42 / 个人分类:Python+Selenium2 WebDriver API

2.26 js解决click失效问题

M b\:aF;[FOQ0前言
I&P!P ~C8c%w:bh0有时候元素明明已经找到了,运行也没报错,点击后页面没任何反应。这种问题遇到了,是比较头疼的,因为没任何报错,只是click事件失效了。
Z7FXC/B%f0本篇用2种方法解决这种诡异的点击事件失效问题51Testing软件测试网1z5C6Ou3Q9]
一、遇到的问题51Testing软件测试网;_"K7?.V8Zn_v
1.在练习百度的搜索设置按钮时,点保存设置按钮,alert弹出没弹出(代码没报错,只是获取alert失败),相信不只是我一个人遇到过。

Y,[P ~,r7?0M0

:Hl.p$pRu051Testing软件测试网\N M/X8i

51Testing软件测试网j'o NZB_ s4K$v

二、点击父元素
e#i KEb*p01.遇到这种问题,应该是前面操作select后导致的后遗症(因为我注释掉select那段是可以点击成功的)。51Testing软件测试网*Ck.N)cqL
2.第一种解决办法,先点击它的父元素一次,然后再点击这个元素。

VHTC5uZBP;Wx0

.T8kl hl$P051Testing软件测试网 @9Yc:wqL

51Testing软件测试网5mgJ/m(Jp8h:};x5n

3.实现代码如下51Testing软件测试网)o1VdA0C0EP+O E

N-i/{6}g#V0

e0Ug0I-d#j X4o*A q!I051Testing软件测试网7qJ2_E:s3e](`1e;aD}

三、js直接点击

I9k-^&^4uN051Testing软件测试网@Dl7Q9gV(q

1.遇到这种诡异问题,是时候出绝招了:js大法。
l3O2P AyF2ti[%N02.用js直接执行点击事件。51Testing软件测试网G7_3X U,Wk_

51Testing软件测试网+|fT y1A.e;D:f@]

uz }8iU0

:pO+m2K6v:I_0四、参考代码51Testing软件测试网!CG"qC!L u!sQ S

复制代码
#coding:utf-8fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChainsfromselenium.webdriver.support.selectimportSelectimporttime
driver=webdriver.Firefox()
url="https://www.baidu.com"driver.get(url)
time.sleep(3)
mouse= driver.find_element("link text","设置")
ActionChains(driver).move_to_element(mouse).perform()
time.sleep(3)
driver.find_element("link text","搜索设置").click()
time.sleep(3)
s= driver.find_element("id","nr")
Select(s).select_by_visible_text("每页显示50条")#方法一:先点父元素 交流QQ群:232607095#driver.find_element("id", "gxszButton").click()#driver.find_element("class name", "prefpanelgo").click()#方法二:用js直接去点击 交流QQ群:232607095js ='document.getElementsByClassName("prefpanelgo")[0].click();'driver.execute_script(js)
复制代码

TAG:

 

评分:0

我来说两句

Open Toolbar