find_elements后点击不了抓取的元素

1.莫名其妙抓不到元素,要去看句柄,是不是没有切换

h=driver.current_window_handle
nh=driver.window_handles
    for i in nh:
        if i!=h:
            driver.switch_to.window(i)

2.hover后才能看到的元素,要hover或者点击才能继续操作

mine=driver.find_element_by_id("j-username-color")
ActionChains(driver).move_to_element(mine).perform()

3.find_elements的时候要是同级别,才能往下click,简化了下网页代码:

<ul  id="collection-view">
<li>
<div class="collection-item">
<div class="item-action">
<button id="568" class="btn btn-primary js-apply">使用皮肤</button>
</div>
</div>
</li>
<li>
<div class="collection-item">
<div class="item-action">
<button id="567" class="btn btn-primary js-apply">使用皮肤</button>
</div>
</div>
</li>
</ul>

 x= driver.find_elements_by_css_selector(".item-action>button"),然后想x[i].click()是不行的

hov=driver.find_elements_by_css_selector("ul#collection-view>li")
for i in range(0, 8):
    hov[i].click()
#li要hover或click才显示具体内容 hov[i].find_element_by_css_selector(
"div.item-action>button").click()

 

补充:

4.要抓取的元素id会变,一直Unable to locate element。

我要点击label,driver.find_element_by_xpath("//*[@id='rt_rt_1b6isr6ta11k1aj81a8u1aro16b34']/label").click()很久,尝试hover或点击上面元素,都不行,结果问题居然在会变的最近id上。下面两个截图是刷新页面后不同的id。用上一级div就好了。虽然很简单,但不注意看可能会花费一段时间,比如我。

 

driver.find_element_by_xpath("//*[@id='centerPicker']/div[2]/label").click()

5.有时候没有等待也是会抓取不到元素,所以加上time.sleep(sencond),来防止莫名出错,还是很有必要的。

6.执行的时候报错Element is not clickable at point (1105.5, 17). Other element would receive the click

元素被遮盖住了,滚动条挪一挪就好了,要挪多少看需要了

js = "var q=document.documentElement.scrollTop=100"
driver.execute_script(js)

 

转载于:https://www.cnblogs.com/wenermao/p/6228767.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值