在使用
selenium
的过程中,我们会遇到打开一个
页面
后,
等待
进度条
加载
完成
,再去滚动鼠标或者下拉
页面
的时候,
页面
还会继续
加载
内容,这就会导致在定位元素并且滑动的时候,代码报错:元素不存在。
这是因为
页面
需要手动下拉或者向下滑动,才能
加载
全部(剩下的)的内容。可以通过sendKeys(Keys.DOWN)方法多下拉几次,来实现
页面
全部内容的
加载
。
下面示例是以百度新闻为例:
package
selenium
webdriver学习(十一)------------如何
等待
页面
元素
加载
完成
web的自动化测试中,我们经常会遇到这样一种情况:当我们的程序执行时需要
页面
某个元素,而此时这个元素还未
加载
完成
,这时我们的程序就会报错。怎么办?
等待
。
等待
元素出现后再进行对这个元素的操作。
在
selenium
-webdriver中我们用两种方式进行
等待
:明确的
等待
和隐性的
等待
。
明确的
等待
Selenium
是一个用于Web应用程序测试的工具。
Selenium
测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的
页面
的源代码,做到可见即可爬。
所以
Selenium
现在被广泛用于Python爬虫。查了下资料,发现这个工具确实强大,最重要的是,
C#
...
driver.get("www.baidu.com");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
WebElement element = d...
一、
页面
加载
等待
1. 在使用过程中发现部分网页
加载
时间过长,导致driver下面的任务,长时间阻塞不执行的问题。查找发现
selenium
有PageLoadStrategy.None方式可
解决
这个问题。如下
ChromeOptions options = new ChromeOptions();
options.AddArguments("lang=zh_CN.UTF-8");
opt...
selenium
的安装使用 网上都有很详细的资料
这里主要讲一下元素未找到并且抛出异常的
解决
办法,网上大多都是WebDriverWait的使用案例,但我用了一下情况不理想。并且他都会抛出一个异常。
所以用的最直接的办法 就是抛出异常
解决
异常,反正网页
加载
完后,它总会找到,具体看代码。
emlment = driver.FindElement(By.CssSelector("#notLogin span a"));
Edit By Vheavens
对《Python核心编程》的褒奖
“ The long-awaited second edition of Wesley Chun’s Core Python
Programming proves to be well worth the wait—
1 ChromeOptions option = new ChromeOptions();
2 option.AddArgument("disable-extensions");
3 option.AddArgument("--start-maximized");
4 IWebDriver...