前言 首先 selenium 是可以定位到隐藏元素的,但是 selenium 不能跟隐藏元素交互,也就是隐藏元素element不能使用element.click()方法. 隐藏元素element.text 虽然不会报错,但获取到的文本是空值 隐藏元素定位 登录之后,获取个人中心的账号内容,在页面上没显示,f12能看到,很明显这是个隐藏元素style="display: none;" from selenium import webdriver import time # 作者-上海悠悠…
1.下图是获取可见元素的文本内容,运行后得到:${B_name}=公告管理:假设公告管理不可见,那么${B_name}=‘’(为空)…
隐藏元素无法通过gettext()获取其文本内容,须用javascript来获取 String actualDataPointName = (String) ((JavascriptExecutor) driver).executeScript( "return jQuery(arguments[0]).text();", element);…
前言 之前经常使用 execute_script() 方法执行 JavaScript 的来解决页面上一些 selenium 无法操作的元素,但是一直无法获取执行的返回值. 最近翻文档,发现 execute_script 是可以拿到 JavaScript 执行后的返回值的 演示案例 以打开https://www.cnblogs.com/yoyoketang/网页为示例,使用 JavaScript 来定位元素 目标元素元素属性 <a id="blog_nav_sitehome" cl…
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用SendKeys解决 只支持python2环境 python3 的用 PyUserInput 看这篇 selenium+python自动化85-python3.6上SendKeys报错用PyUserInput取代 一.下载场景 1.当点到下载按钮时候,会弹出如下页面 2.如果想点“保存文件”按钮,解决…
网上有一些js获取隐藏元素宽高的方法,但是可能会存在某些情况获取不了. 例如: <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>test</title> </head> <bo…
在做茶城网改版工作的时候,又遇到一个新问题,我需要用jQuery写一个通过点击左右图标来翻阅图片的小插件,写好后测试可以正常运行,但是放到Tab中后发现只有第一个Tab中的代码能够正常运行,其它全部罢工了.   用Chrome自带的开发工具一查,发现罢工的Tab中.小插件一些重要元素的宽度都变成"0"了,因为这个小插件需要计算动态宽度来实现,于是马上想到是小插件中的宽度获取失败了,果不其然.   汗,居然一直没发现jQuery无法获取隐藏元素(display:none)的宽度(widt…
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果. 之前讲过一篇Selenium2+python自动化75-非input文件上传(SendKeys)这个当时是基于python2写的. 最近很多小伙伴开始用python3了,这个SendKeys在python3上没法用,python3需要用PyUserIn…
用jQuery写一个通过点击左右图标来翻阅图片的小插件,写好后测试可以正常运行,但是放到Tab中后发现只有第一个Tab中的代码能够正常运行,其它全部罢工了. 用Chrome自带的开发工具一查,发现罢工的Tab中.小插件一些重要元素的宽度都变成“0”了,因为这个小插件需要计算动态宽度来实现,于是马上想到是小插件中的宽度获取失败了,果不其然. 汗,居然一直没发现jQuery无法获取隐藏元素(display:none)的宽度(width)和高度(height),为了兼容IE6,我用1.x版,而且是官方…
前言 selenium定位一组元素,批量操作循环点击的时候会报错:Element not found in the cache - perhaps the page has changed since it was looked up 实现目标:批量点击标题,获取每个页面的url地址 代码如下: # coding:utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.cn…