day34(20191219):web-xpath复杂元素定位:窗口切换(三)

本文详细探讨了在Web自动化测试中如何使用XPath进行复杂元素定位,特别是针对窗口切换的场景,提供了实用技巧和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"""
======================
@Author:coco
@Time:2019/12/23
@File:窗口切换.py
@software:PyCharm
======================
"""
"""
你怎么要切换到哪儿?
1)有一行为,触发了新的窗口出现
2)获取所有的窗口handles--列表。按照窗口出现的顺序,最新的窗口是最后一个。
3)切换:switch_to.window(窗口的handle)
    从一html页面,切换到另外一个html页面
"""

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 开启与浏览器的会话 -newSession
driver = webdriver.Chrome()
# 隐性等待 -1)等待元素被找到 2)等待命令执行完成
driver.implicitly_wait(20)  # 最多等20秒。20秒内什么找到什么时候继续执行后续代码

driver.get("http://www.baidu.com")

driver.find_element_by_id('kw').send_keys("柠檬班")
driver.find_element_by_id('su').click()

loc = (By.XPATH, '//a[text()="_腾讯课堂"]')
WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))

driver.find_element(*loc).click()  # 打开了新的窗口
time.sleep(1)

# 获取句柄
wins = driver.window_handles
print("当前窗口的有的名柄:",wins)
#可以获取当前窗口的句柄

cur=driver.current_window_handle
print("当前窗口的句柄:",cur)

# 切换
driver.switch_to.window(wins[-1])

loc=(By.XPATH,'//ul[@id="js-tab"]//h2[contains(text(),"老师")]')
WebDriverWait(driver,5).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()   # *打开 老师 选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值