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)

find_elements后点击不了抓取的元素的更多相关文章

  1. PHP 正则表达式的简单应用以 preg_match_all 抓取HTML元素为例 [转载]

    PHP 正则表达式的简单应用以 preg_match_all 抓取HTML元素为例 2011-12-02 17:09:39|  分类: PHP|举报|字号 订阅     下载LOFTER我的照片书   ...

  2. Spider--动态网页抓取--审查元素

    # 静态网页在浏览器中展示的内容都在HTML的源码中,但主流网页使用 Javascript时,很多内容不出现在HTML的源代码中,我们需要使用动态网页抓取技术. # Ajax: Asynchronou ...

  3. jq实现 元素显示后 点击页面的任何位置除元素本身外 隐藏元素

    $(".share-weixin").on("click",function(e){ var $wx=$(".weixin-share"), ...

  4. 无限级分类,抓取某元素的所有下级id

    mysql> select id,invite_qke_id from tf_qke; +----+---------------+ | id | invite_qke_id | +----+- ...

  5. Python之抓取网页元素

    import urllib.request from bs4 import BeautifulSoup url = "http://www.wal-martchina.com/walmart ...

  6. Web自动化框架LazyUI使用手册(4)--控件抓取工具Elements Extractor详解(批量抓取)

    概述 前面的一篇博文详细介绍了单个控件抓取的设计思路&逻辑以及使用方法,本文将详述批量控件抓取功能. 批量抓取:打开一个web页面,遍历页面上所有能被抓取的元素,获得每个元素的iframe.和 ...

  7. Python爬虫入门教程 28-100 虎嗅网文章数据抓取 pyspider

    1. 虎嗅网文章数据----写在前面 今天继续使用pyspider爬取数据,很不幸,虎嗅资讯网被我选中了,网址为 https://www.huxiu.com/ 爬的就是它的资讯频道,本文章仅供学习交流 ...

  8. Mac用户抓包软件Charles 4.0 破解 以及 抓取Https链接设置

    相信大家曾经都是Window的用户,作为前端哪能没有一款抓包工具,抓包工具可以非常便捷的帮助我们分析接口返回报文数据,快速定位问题. 曾经横扫window用户的Fiddler便是我们的挚爱,然而,作为 ...

  9. Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页

    欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...

随机推荐

  1. linux c 笔记-4 工程项目阅读推荐

    作者:周子涵链接:https://www.zhihu.com/question/27705862/answer/37738315来源:知乎著作权归作者所有,转载请联系作者获得授权. 转自网上不知道什么 ...

  2. haproxy测试

    环境: Clients:N台linux, 使用“ab -k -c 20000...” 并发2w 请求haproxy Haproxy Server: R610 2*8核 2.4G Real Server ...

  3. CPU时间片

    CPU时间片 为了提高程序执行效率,大家在很多应用中都采用了多线程模式,这样可以将原来的序列化执行变为并行执行,任务的分解以及并行执行能够极大地提高程序的运行效率. 但这都是代码级别的表现,而硬件是如 ...

  4. MysqlWorkbench连接远程数据

  5. iOS创建自定义的xib视图,不带控制器调用

    1 我们平常使用视图都是在控制器中加载各种视图,但是有时候一个单独的视图,弄一个控制器未免有些显得太沉重了,所以我们现在来创建一个带xib加载视图的自定义视图 2 创建一个视图类集成uiview 3 ...

  6. PIL中分离通道发生“AttributeError: 'NoneType' object has no attribute 'bands'”

    解决方法: 这个貌似是属于一个bug 把Image.py中的1500行左右的split函数改成如下即可: def split(self): "Split image into bands&q ...

  7. 浅析python 中__name__ = '__main__' 的作用

    引用http://www.jb51.net/article/51892.htm 很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码 ...

  8. zorka源码解读之通过beanshell进行插桩的流程

    zorka中插桩流程概述 1.在SpyDefinition中配置插桩属性,将SpyDefinition实例提交给插桩引擎.2.SpyDefinition实例中包含了插桩探针probes,probe插入 ...

  9. BZOJ 1246 & 有点不一样的概率DP

    题意: 题意够坑的啊... 一个色子有n个面,第k次掷出一个加上这个k.求掷出所有面的期望值. 我一直以为值是色子面上的... 那么问题来了在色子面上怎么做...n还是1w级别... SOL: 对着理 ...

  10. 从零开始山寨Caffe·肆:线程系统

    不精通多线程优化的程序员,不是好程序员,连码农都不是. ——并行计算时代掌握多线程的重要性 线程与操作系统 用户线程与内核线程 广义上线程分为用户线程和内核线程. 前者已经绝迹,它一般只存在于早期不支 ...