我们的部分网页在后端运行第三方分析。在我看来,在进入下一步之前,硒正在等待这些过程完成。问题是它需要大约5-6分钟。有没有办法登上这个等待并继续下一步?
我尝试点击按钮(将用户带到具有一些后端进程的页面),点击JavaScript,这样就可以了,但是它会在下一步停留。
感谢。
答案 0 :(得分:3)
在webdriver上甚至可以在页面加载上单击元素;默认情况下,webdriver等待整个页面加载,然后选择元素。链接和文本是可见的,但它们不可点击;但是,它在页面加载时适用于Selenium IDE拾取元素。
Webdriver利用 FirefoxProfile 来避免此类风险;它仅适用于Firefox浏览器。
FirefoxProfile fp = new FirefoxProfile();
fp.setPreference("webdriver.load.strategy", "unstable");
driver = new FirefoxDriver(fp);
答案 1 :(得分:0)
我建议您可以使用代理。 Browsermob与硒很好地结合,非常容易使用它:
// start the proxy
ProxyServer server = new ProxyServer(4444);
server.start();
// get the Selenium proxy object
Proxy proxy = server.seleniumProxy();
// This line will automatically return http.200 for any request going to google analytics
server.blacklistRequests("https?://.*\\.google-analytics\\.com/.*", 200);
// configure it as a desired capability
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
// start the browser up
WebDriver driver = new FirefoxDriver(capabilities);
编辑: 我刚刚发现,在selenium 2.40中,实现了pageLoading策略。
- 在Firefox中实现了pageLoadingStrategy功能。
partial interface WebDriver {
const DOMString CONSERVATIVE = 'conservative';
const DOMString NORMAL = 'normal';
const DOMString EAGER = 'eager';
const DOMString NONE = 'none';
};