怎么通过selenium实现在新窗口打开链接

怎么通过selenium实现在新窗口打开链接,第1张

WebElement link = elementfindElement(BytagName("a"));

String href = linkgetAttribute("href");

JavascriptExecutor executor = (JavascriptExecutor) driver;

executorexecuteScript("windowopen('" + href + "')");

具体方式就是拿到一个连接的WebElement对象,然后通过getAttribute("href")属性获取它的链接地址

然后通过调用javascript脚本的方式,执行windowopen()方法在一个新窗口打开这个链接

然后需要通过切换handle的方式跳转到这个新的页面去具体方法:

for (String toHandle : drivergetWindowHandles()) {

if (toHandleequals(curHandle)) {

continue;

}

driverswitchTo()window(toHandle); //切换到另一个新句柄

SubjectPage subPage = PageCreatorcreatePage(SubjectPageclass);//创建页面,我自己封装的,可忽略

drivermanage()timeouts()implicitlyWait(3, TimeUnitSECONDS);

// TODO

subPagecloseMe(); //自己封装的,忽略

driverswitchTo()window(curHandle);

}

最大化、最小化浏览器

控制、获取浏览器大小

执行结果

浏览器大小:{'width': 1936, 'height': 1056}

获取当前标签页title、url

执行结果:

前进、后退、刷新

执行js语句

打开、关闭新标签页

执行结果

知识点

滚动页面

你可以在chrome上加一个代理,比如tiny proxy,它是纯python写的。你改一改就可以奕成抓包程序, 自然就可以获得返回的请求。

另外在selenium里,也应该可以获得响应结果。它通过chrome驱动,我没有仔细看过代码,webkit内核是直接通过toHtml,或者是类似的命令可以获得响应结果的。 selenium应该也可以。

猜可以通过javascript驱动selenium,获得响应结果。

1、可以通过浏览器的调试功能,例如Firefox按F12,点网络标签,然后就可以看到网页的所有数据信息,网页通过AJAX异步加载的数据也可以得到。

2、使用抓包类的工具,如SmartSniff,经过分析也可以得到数据也可以得到数据!

以上就是关于怎么通过selenium实现在新窗口打开链接全部的内容,包括:怎么通过selenium实现在新窗口打开链接、二 selenium原理以及如何 *** 作浏览器、用python,selenium,打开网页或者点击按钮会向服务器发送很多请求,用python如何获等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9786173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存