概述
python+selenuim webdriver 页面跳转后如何定位元素
页面跳转之后,selenuim webdriver 无法定位继续定位新页面的页面元素。
其实,只需要将handle定位到当前页面就可以了
举个栗子:
-
打开百度搜索
-
输入selenuim
-
点击搜索
-
根据xpath找到新页面的第三个链接
-
点击跳转
#coding=utf-8 from selenium import webdriver import time browser=webdriver.Firefox() browser.get("http://www.baidu.com") browser.find_element_by_id("kw").send_keys("selenium") browser.find_element_by_id("su").click() time.sleep(3) sreach_window=browser.current_window_handle //此行代码用来定位当前页面 browser.find_element_by_xpath("/html/body/div[3]/div[4]/div/div[3]/div[4]/h3/a").click() time.sleep(5)
关于python中selenium获取不到跳转页面的元素问题解决
https://www.cnblogs.com/lirongyang/p/12651634.html
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://service.yunfuw.beta/login')
p = driver.find_element_by_xpath("//input[@class='el-input__inner']")
p.send_keys('xiaoming')
driver.find_element_by_xpath("//input[@placeholder='密码']").send_keys('admin1')
driver.find_element_by_xpath("//button[@class='el-button login-btn el-button--primary']").click()
#跳转到当前html页面,此时在进行定位就可以了
driver.switch_to.window(driver.window_handles[0])
html = driver.page_source
print(html)
注意:==driver.switch_to.window(driver.window_handles[0])==跳转时有可能句柄还为加载,最好在**前面加一个sleep()**等待
frame操作和window多窗口切换
https://blog.csdn.net/qq_45177788/article/details/111513339
frame操作
# 进入frame框架
driver.switch_to.frame('属性')
# 进入上级frame框架
driver.switch_to.parent_frame()
# 进入主页面
driver.switch_to.default_content()
切换window
# 获取当前窗口句柄
current_handle = driver.current_window_handle()
# 获取全部窗口句柄
handles = driver.window_handles
# 遍历所有的句柄
for handle in handles:
if handle != current_handle:
# 切换窗口
driver.switch_to.window(handle)
最后
以上就是还单身哑铃为你收集整理的selenium的全部内容,希望文章能够帮你解决selenium所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复