三大切换及页面操作学习

本文介绍了网页操作中的三大切换——窗口切换、frame切换和alert切换,并详细讲解了页面操作,包括鼠标、键盘及select操作。同时,分享了本地创建HTML代码的经验,以及在自动化测试中遇到元素找不到问题的排查方法,如检查元素定位、设置等待和确认元素所在位置。

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

1、三大切换主要包括窗口切换、frame切换、以及alert切换

---窗口切换

"""窗口切换"""
from selenium import webdriver

#初始化浏览器对象
driver=webdriver.Chrome()

#访问百度
driver.get("https://www.baidu.com")

#定位新闻,并跳转到新闻页面
news_ele=driver.find_element_by_xpath("//*[text()='新闻']")
news_ele.click()

#获取窗口句柄
windows=driver.window_handles
#切换到最新的窗口,即新闻页面
driver.switch_to.window(windows[-1])

#定位切换后的窗口的热搜新闻词
ele=driver.find_element_by_xpath("//*[text()='热搜新闻词']")

---frame切换

"""frame切换"""

from selenium import webdriver

#初始化浏览器对象
driver=webdriver.Chrome()

#访问本地创建的具备frame的网页
driver.get("http://localhost:63342/python29/web/class01_selenium/demo_%E4%B8%89%E5%A4%A7%E5%88%87%E6%8D%A2/demo_%E7%BD%91%E9%A1%B5.html?_ijt=klj0j81pga0vp0a7ub611lj45i")

#定位frame
frame_ele=driver.find_element_by_xpath("//iframe")

#切换到iframe
driver.switch_to.frame(frame_ele)

#定位frame里的输入框
input_ele=driver.find_element_by_id("kw")

#输入框输入hello
input_ele.send_keys("hello")

---alert切换

"""alert切换"""
from selenium import webdriver
import time
#初始化浏览器对象
driver=webdriver.Chrome()

#访问本地创建的具备alert的网页
driver.get("http://localhost:63342/python29/web/class01_selenium/demo_%E4%B8%89%E5%A4%A7%E5%88%87%E6%8D%A2/demo_%E7%BD%91%E9%A1%B5.html?_ijt=fl57e05f4ib5br0bp069b508qg")

#定位弹出alert的元素
alert_ele=driver.find_element_by_xpath("//*[text()='测试alert弹框']")
alert_ele.click()

#切换到alert
my_alert=driver.switch_to.alert

time.sleep(2)
#弹框点击确认
my_alert.accept()

2、页面操作

--鼠标操作

"""鼠标操作"""

from selenium import webdriver
from selenium.webdriver import ActionChains

driver=webdriver.Chrome()

#访问百度
driver.get("https://www.baidu.com")

#最大化窗口
driver.maximize_window()

#定位百度页面的设置
settings_ele=driver.find_element_by_xpath("//*[@id='s-usersetting-top']")

#初始化ActionChains对象,记得导入ActionChains
action=ActionChains(driver)

#鼠标悬停在设置界面,记得加perform()
action.move_to_element(settings_ele).perform()

#定位高级搜索
adv_ele=driver.find_element_by_xpath("//*[text()='高级搜索']")
adv_ele.click()

---键盘操作

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver=webdriver.Chrome()

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

input_ele=driver.find_element_by_xpath("//*[@id='kw']")

#输入数据和enter键
input_ele.send_keys("淘宝",Keys.ENTER)

# input_ele.send_keys(Keys.ENTER)

---select操作

from selenium import webdriver
from selenium.webdriver.support.select import Select

driver=webdriver.Chrome()

driver.get("http://localhost:63342/python29/web/class01_selenium/demo_%E9%A1%B5%E9%9D%A2%E6%93%8D%E4%BD%9C/demo_%E7%BD%91%E9%A1%B5.html?_ijt=th91dtotbkopdcmuqfut86keck")

#定位到select
select_e=driver.find_element_by_xpath("//select")

#初始化Select对象
e=Select(select_e)

#通过value选择
# e.select_by_value("yangzi")

#通过文本选择
e.select_by_visible_text("李沁")

3、本地创建的html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试网页</title>
    <h1>测试selenum</h1>
</head>
<body>
   <p>测试selector</p>
   <p>请选择你最喜欢的明星
   <select>
    <option value="zhangyixing">张艺兴</option>
    <option value="xiaozhan">肖战</option>
    <option value="yangzi">杨紫</option>
    <option value="liqin">李沁</option>
</select>
   </p>
<p>测试iframe</p>
<p>
    <iframe src="https://www.baidu.com"></iframe>
</p>
<p>test</p>
<p onclick="alert('hello,world!')">测试alert弹框</p>
</body>
</html>

4、总结:

元素无法找到的原因(提示NoSuchElement):

--先去检查元素定位方式是否正确,可以在网页按f12使用查找的方式,输入写的定位方法,看能否搜索到想要定位的元素
--是否有设置等待
--检查有没有在页面。有没有在窗口,有没有在一个iframe中
 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值