上节我们谈了定位下拉框的方法,这节继续说说定位frame和alert,window的方法,废话不多说,搞起来~








【selenium-12】定位frame和alert,window_html


定位frame

我们在平时工作中肯定会遇到No Such Element的情况

很多时候是由于页面中嵌套frame造成的:


有个页面长这样​  


【selenium-12】定位frame和alert,window_chrome_02


页面代码是这样



1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <title>test</title>
6</head>
7<body>
8<h1>fuck_test</h1>
9<div>
10 <input type="checkbox" id="china"><label for="china">China</label><br>
11 <input type="checkbox" id="china"><label for="china">Canada</label><br>
12 <input type="checkbox" id="china"><label for="china">Japan</label><br>
13 <input type="checkbox" id="china"><label for="china">US</label><br>
14 <iframe src="https://www.baidu.com" width="1000" height="500" frameborder="1/0" name="test" scrolling="auto">
15</iframe>
16</div>
17</body>
18</html>


定位百度搜索框的代码



1#encoding=utf-8
2from selenium import webdriver
3from selenium.webdriver.common import keys
4import time
5fuck_test=webdriver.Chrome()
6fuck_test.maximize_window()
7fuck_test.get("C:\\Users\\Administrator\\Desktop\\test.html")
8time.sleep(2)
9#定位搜索框,输入phyger进行搜索
10fuck_test.find_element_by_name("wd").send_keys("fuck_test")
11time.sleep(1)
12fuck_test.find_element_by_id("su").click()
13time.sleep(2)
14fuck_test.quit()


结果No such element



【selenium-12】定位frame和alert,window_搜索_03



【selenium-12】定位frame和alert,window_html_04

定位frame→定位元素

【selenium-12】定位frame和alert,window_搜索_05



1#encoding=utf-8
2from selenium import webdriver
3from selenium.webdriver.common import keys
4import time
5fuck_test=webdriver.Chrome()
6fuck_test.maximize_window()
7fuck_test.get("C:\\Users\\Administrator\\Desktop\\test.html")
8time.sleep(2)
9#定位搜索框,输入phyger进行搜索
10fuck_test.switch_to.frame("test")
11fuck_test.find_element_by_name("wd").send_keys("fuck_test")
12time.sleep(1)
13fuck_test.find_element_by_id("su").click()
14time.sleep(2)
15fuck_test.quit()


【selenium-12】定位frame和alert,window_html_04效果

【selenium-12】定位frame和alert,window_html_07


【selenium-12】定位frame和alert,window_chrome_08




定位这两个​至于alert,window和frame的用法一样

定位新弹出的页面

switch_to.window()

定位浏览器正上方弹出的提示框

alert = switch_to.alert()

alert.accept()






可能有很多朋友的selenium中的自动补全代码显示为:

switch_to_frame()

您不用担心,这是旧的写法,实际按照文中的写法即可。





ok,今天就到这,短小精悍是我们的目标,祝你看的愉快~兄dei~如果你觉得还行大家一起学习,共同进步~

【selenium-12】定位frame和alert,window_搜索_09




【selenium-12】定位frame和alert,window_chrome_10【selenium-12】定位frame和alert,window_搜索_11