有时我们在打开浏览器浏览网页时,当点击网页上某些链接时,它不是直接在当前页面上跳转,而是重新打开一个新标签页面,对于这种情况,想在新页面上操作,就得先切换窗口了.获取窗口的唯一标识用句柄表示,所以只需要切换句柄,我们就能在多个页面上灵活自如的操作了. 一.认识多窗口 1.这里以赶集网为例,打开赶集网http://cd.ganji.com/,点击工作,就会发现会重新打开一个窗口: image 二.获取当前窗口句柄 1.元素有属性,浏览器的窗口其实也有属性的,只是你看不到,浏览器窗口的属性用句柄(h…
1.跳转新窗口 # 浏览器跳转新窗口后,selenium绑定新窗口 print('页面跳转后重新绑定selenium.') time.sleep(3) search_window = driver.current_window_handle # 此行代码用来定位当前页面 html =driver.page_source print("打印标题") print(driver.title) 2.弹出新窗口 # 浏览器弹出新窗口后,selenium绑定新窗口 windows = driver…
解决selenium不支持firefox低版本的问题 在火狐浏览器升级后,突然发现webdriver运行脚本的时候不能调出火狐浏览器了,并报错WebDriverException:Message:'Can\t load the profile. Profile Dir:XXXX……',具体见下图: 经过网上查询后发现,是因为我所用的selenium包的版本不支持现在用的火狐浏览器,我的selenium包的是selenium-server-standalone-2.31.0.jar,火狐浏览器版本…
原文:Popup 解决位置不随窗口/元素FrameworkElement 移动更新的问题 Popup弹出后,因业务需求设置了StaysOpen=true后,移动窗口位置或者改变窗口大小,Popup的位置不会更新. 如何更新位置? 获取当前Popup的Target绑定UserControl所在窗口,位置刷新时,时时更新Popup的位置即可. 1.添加一个附加属性 /// <summary> /// Popup位置更新 /// </summary> public static read…
转载 解决selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in P   'chromedriver' executable needs to be in Path 声明:本人萌新,刚学python不久记录一下自己的坑,发出来若能帮助到一些人尽早解决问题那便是极好的,( ̄▽ ̄)" 在进行爬虫爬取淘宝商品信息时候,利用selenium来模拟浏览器进行爬取时遇到了…
python selenium 处理悬浮窗口 from selenium.webdriver.common.action_chains import ActionChainsActionChains(driver).move_to_element(e).perform() #encode=utf-8from selenium import webdriverimport timefrom selenium.webdriver.common.action_chains import ActionC…
解决selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expiry'   浏览器添加cookies with open('cookies', 'r', encoding='utf-8') as f: list_cookies = json.loads(f.readline()) print(list_cookies) # cookie = [item["name&quo…
1.简介 今天本来就要分享和讲解三大延时等待的,但是在写作过程中发了问题,会用到这一个知识点,于是就提前介绍一下,以便后边用到了可以更好的理解和掌握.本文就是要介绍如何获得浏览器窗体的句柄或者叫编号,为后面的driver实例在多个窗体之间切换做准备. 2.什么是浏览器窗口句柄? 先来解释下什么是句柄,有时候浏览器的窗口句柄,也叫windows id,英文单词更好理解.你打开了一个浏览器,你开一个tab,就生成了一个id,这个id直到你关闭这个tab才会消失.如果你在一个浏览器上打开多个tab,那…
虽然把WebDriver定义为一个静态变量了,但是每次执行测试都要打开多个窗口,挺浪费时间的. 找了很多中方法,比如使用setUpClass, BeforeSuite都没有完全解决问题.后来无意间发现初始化方法每次都调用setUp方法,索性试着不让子类实例化的时候执行setUp方法,竟然解决了启动多个浏览器窗口的问题! 留下来做个记录: 父类头:public class TestBase_Web extends TestCase { 子类头:public class TestActivityPa…