如果得到的文本只为空,而非我们期望的baidu,那么当前定位的元素可能被隐藏了。
1.判断是否被隐藏 。 driver.find_element_by_xx().is_displayed()
打印结果,如果得到 false的结果.那就说明被隐藏了
2.怎么解决?
方法一: 修改页面当前定位元素,或者当前元素父元素的CSS,使元素的is_displayed()值为true.
方法二: is_displayed()为false的元素,依然可以通过getAttribute()方法获取元素的属性.
由于webdriver spec的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串。
可是,在某些情况下,我们需要获取隐藏元素的文本。这些内容可以使用element.attribute('attributeName'), 通过textContent, innerText, innerHTML等属性获 取。(划重点)
innerHTML 会返回元素的内部 HTML, 包含所有的HTML标签。
例如,
World!
World!
textContent 和 innerText 只会得到文本内容,而不会包含 HTML 标签。
textContent 是 W3C 兼容的文字内容属性,但是 IE 不支持
innerText 不是 W3C DOM 的指定内容,FireFox不支持
1、Select元素
1.打开百度-设置-搜索设置界面,如下图所示
2.箭头所指位置,就是 select 选项框,打开页面元素定位,下方红色框框区域,可以看到 select 标签属性:
3.选项有三个
每页显示 10 条
每页显示 20 条
每页显示 50 条
2、定位select
定位select有多种方法,下面进行一一介绍
2.1 二次定位
1.定位 select 里的选项有多种方式,这里先介绍一种简单的方法:二次定位
2.基本思路,先定位 select 框,再定位 select 里的选项
完整代码如下:
1
2
3
4