selenium

python+selenuim webdriver 页面跳转后如何定位元素

页面跳转之后,selenuim webdriver 无法定位继续定位新页面的页面元素。

其实,只需要将handle定位到当前页面就可以了

举个栗子:

  1. 打开百度搜索

  2. 输入selenuim

  3. 点击搜索

  4. 根据xpath找到新页面的第三个链接

  5. 点击跳转

    #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)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值