1.iframe切换
方法:switch_to_frame(frame_reference)
iframe是在一个web页面中又嵌入了一个页面,此时直接定位用户名验证码元素是定位不到的,必须切换到这个iframe页面中才能定位到这两个元素。
![](https://img.haomeiwen.com/i11755552/4f6bac36e7465ea8.png)
复制src后面的链接地址到浏览器打开,可以发现就是内嵌的登录页面
![](https://img.haomeiwen.com/i11755552/5c71bc4f15aefc0d.png)
具体实现脚本如下:
# iframe切换
from selenium import webdriver
driver = webdriver.Chrome()
def login(url, username, passwd):
driver.get(url)
driver.switch_to_frame('iframeLoginIfm')
driver.find_element_by_id('phoneIpt').send_keys(username)
driver.find_element_by_id('smsIpt').send_keys(passwd)
driver.find_element_by_id('smsSubmitBtn').click()
url = 'https://login.anjuke.com/login/form'
username = '17672166446'
passwd = '123456'
login(url,username,passwd)
2.隐式等待
# 隐式等待10s,即当前函数内部每次执行完一个操作后等待10s
driver.implicitly_wait(10)
![](https://img.haomeiwen.com/i11755552/0cc75ea22a32cb55.png)
3.css定位技巧
百度“helloworld”,定位搜索出来的第一条内容,浏览器开发模式下,定位到该链接的上级标签为h3,该标签的class为“t c-gap-bottom-small”,而第一条搜索结果在h3标签下的a标签中。所以该元素的定位css格式即为“.t.c-gap-bottom-small > a”
![](https://img.haomeiwen.com/i11755552/0a913a840993d331.png)
网友评论