from selenium import webdriver import time driver = webdriver.Firefox() driver.get("https://mail.qq.com/") time.sleep(5) #切换iframe driver.switch_to_frame("login_frame") #用户名和密码 driver.find_element_by_id("u").send_keys("你的qq账号") driver.find_element_by_id("p").send_keys("你的qq密码") driver.find_element_by_id("login_button").click() time.sleep(5) driver.switch_to.default_content() driver.find_element_by_id("composebtn").click() #整个写信页面 time.sleep(3) driver.switch_to.default_content() #退出当前的frame框架 driver.switch_to.frame(driver.find_element_by_id('mainFrame')) driver.find_element_by_xpath("//*[@id='toAreaCtrl']/div[2]/input").send_keys("674794275@qq.com") driver.find_element_by_id("subject").send_keys("XXX") time.sleep(2) #退出iframe driver.switch_to.default_content() #进入正文的iframe,分两步,先进大的frame,再进去嵌套的frame driver.switch_to.frame("mainFrame") frame_body = driver.find_element_by_xpath('//iframe[@scrolling="auto" and @class="qmEditorIfrmEditArea"]') driver.switch_to.frame(frame_body) time.sleep(2) driver.find_element_by_xpath("/html/body").send_keys("XXXX") driver.switch_to.parent_frame() #退回大的iframe框架在发送 time.sleep(2) driver.find_element_by_link_text("发送").click() time.sleep(3)
分享:
1、火狐浏览器使用时会发生找不到element这类的事件,所以需要做好三件事:其一,打开一个新的界面时,需要time.sleep(5)作为短暂的停歇;其二,需要查清所定位的element所在的iframe,需要用一些语句切换iframe;其三,注意写对定位方法。