Python中在跳转页面时,在新的页面就不能定位到元素了Unable to locate element
2017-09-26 10:50
489 查看
#coding=utf-8
from selenium import webdriver
import time
keywords='公务员'
keywords=keywords.decode('utf-8')
driver=webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys(keywords)
driver.find_element_by_id('su').click()
driver.find_element_by_xpath('//*[@id="3001"]/div[1]').click() #对新页面的第一个字段进行点击
可是报错:不能定位到新页面上的元素信息。到网上查了一下,发现当有新页面出来时,需要实现对新窗口句柄的捕捉
于是修改如下:
#coding=utf-8
from selenium import webdriver
import time
keywords='公务员'
keywords=keywords.decode('utf-8')
driver=webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys(keywords)
driver.find_element_by_id('su').click()
time.sleep(3)
driver.switch_to_window(driver.window_handles[0]) #实现对新窗口句柄的捕捉
driver.find_element_by_xpath('//*[@id="3001"]/div[1]').click()
到网上查了一下,发现对新窗口的定位有两种方法:
第一种(就是上面那种):driver.switch_to_window(driver.window_handles[0]) 这里的0就是新弹出的第一个窗口,如果要定位第二个窗口就用1,以此类推
第二种:for handle in driver.window_handles:
driver.switch_to_window(handle)
就是总是对最新弹出的窗口进行定位
from selenium import webdriver
import time
keywords='公务员'
keywords=keywords.decode('utf-8')
driver=webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys(keywords)
driver.find_element_by_id('su').click()
driver.find_element_by_xpath('//*[@id="3001"]/div[1]').click() #对新页面的第一个字段进行点击
可是报错:不能定位到新页面上的元素信息。到网上查了一下,发现当有新页面出来时,需要实现对新窗口句柄的捕捉
于是修改如下:
#coding=utf-8
from selenium import webdriver
import time
keywords='公务员'
keywords=keywords.decode('utf-8')
driver=webdriver.Firefox()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys(keywords)
driver.find_element_by_id('su').click()
time.sleep(3)
driver.switch_to_window(driver.window_handles[0]) #实现对新窗口句柄的捕捉
driver.find_element_by_xpath('//*[@id="3001"]/div[1]').click()
到网上查了一下,发现对新窗口的定位有两种方法:
第一种(就是上面那种):driver.switch_to_window(driver.window_handles[0]) 这里的0就是新弹出的第一个窗口,如果要定位第二个窗口就用1,以此类推
第二种:for handle in driver.window_handles:
driver.switch_to_window(handle)
就是总是对最新弹出的窗口进行定位
相关文章推荐
- 解决Selenium弹出新页面无法定位元素问题(Unable to locate element)
- 使用selenium+python;在页面A点击一个按钮跳转到页面B,页面A没有关闭,浏览器打开了一个B,切换窗口定位页面B的元素
- python+selenuim webdriver 页面跳转后如何定位元素
- python+selenium unable to locate element
- 【Python】selenium调用IE11浏览器,报错“找不到元素”NoSuchWindowException: Message:Unable to find element on closed window
- NoSuchElementException: Unable to locate element--三种系统等待时间
- OllyDbg 在可执行文件中无法定位数据(Unable to locate data in executable file)
- Unable to locate package python-pip
- jquery mobile框架,用超链接定位到其他页面,会出现不能跳转或者跳转后页面js代码不能执行现象
- Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)
- <Python>页面元素定位方式:xpath----轴定位方式
- selenium2.0关于python的常用函数(二) 定位元素,解析页面时用到
- [转]org.openqa.selenium.NoSuchElementException: Unable to locate element: 异常解决方法
- Selenium with Python 003 - 页面元素定位
- org.openqa.selenium.NoSuchElementException: Unable to locate element: 异常解决方法
- iframe,switchToWindow报错--no such element: Unable to locate element
- 页面元素的定位:getBoundingClientRect()和document.documentElement.scrollTop
- webdriver定位页面元素插件-WebDriver Element Locator
- Eclipse不能启动,报一下两种错误:The Eclipse executable launcher was unable to locate its companion launcher jar
- Eclipse不能启动,提示:The Eclipse executable launcher was unable to locate its companion launcher jar