这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
爬虫 [2019/10/04 19:01] admin |
爬虫 [2020/02/01 21:41] (当前版本) |
||
---|---|---|---|
行 4: | 行 4: | ||
===== 安装WebDriver ===== | ===== 安装WebDriver ===== | ||
- 打开谷歌浏览器->帮助->关于xxxx->查看版本 | - 打开谷歌浏览器->帮助->关于xxxx->查看版本 | ||
- | - 下载相应版本的webDriver,支持的大版本如74是相同的,74.x.x.x的各个小版本基本都是可以适用的 | + | - 下载相应版本的[[http://chromedriver.storage.googleapis.com/index.html?|webDriver]],支持的大版本如74是相同的,74.x.x.x的各个小版本基本都是可以适用的 |
- 配置好webdriver环境变量 | - 配置好webdriver环境变量 | ||
+ | ====== 参考博客 ====== | ||
+ | [[https://blog.csdn.net/q1694222672/article/details/82836315|Selenium用法笔记(解决动态渲染页面)]] | ||
====== 获取字符为空 ====== | ====== 获取字符为空 ====== | ||
===== 问题 ===== | ===== 问题 ===== | ||
driver.find_element_by_xxx().text() 为空的解决办法 | driver.find_element_by_xxx().text() 为空的解决办法 | ||
===== 原因 ===== | ===== 原因 ===== | ||
- | 当前定位的元素可能被隐藏了 | + | 当前定位的元素可能被隐藏了,而Selenium WebDriver只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串。 |
- | - 方法一:修改页面当前定位元素,或者当前元素父元素的CSS,使元素的is_displayed() 值为true. | + | ===== 解决方案 ===== |
- | - 方法二: is_displayed()为false的元素,依然可以通过getAttribute()方法获取元素的属性. | + | - 方法一:修改页面当前定位元素,或者当前元素父元素的CSS,使元素的is_displayed()值为true。 |
- | 由于webdriver spec的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串。 | + | - 方法二: is_displayed()为false的元素,依然可以通过getAttribute()方法获取元素的属性。可以使用element.attribute('attributeName'), 通过textContent,innerText,innerHTML等属性获取。 |
- | 可是,在某些情况下,我们需要获取隐藏元素的文本。这些内容可以使用element.attribute('attributeName'), 通过textContent, innerText, innerHTML等属性获 取。(划重点) | + |