上节我们谈了定位下拉框的方法,这节继续说说定位frame和alert,window的方法,废话不多说,搞起来~
定位frame
我们在平时工作中肯定会遇到No Such Element的情况
很多时候是由于页面中嵌套frame造成的:
有个页面长这样
页面代码是这样
1
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
定位frame→定位元素
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()
效果
定位这两个至于alert,window和frame的用法一样
定位新弹出的页面
switch_to.window()
定位浏览器正上方弹出的提示框
alert = switch_to.alert()
alert.accept()
可能有很多朋友的selenium中的自动补全代码显示为:
switch_to_frame()
您不用担心,这是旧的写法,实际按照文中的写法即可。
ok,今天就到这,短小精悍是我们的目标,祝你看的愉快~兄dei~如果你觉得还行大家一起学习,共同进步~