王串場街網(wǎng)站建設(shè)公司全網(wǎng)營銷培訓(xùn)
之前的文章有關(guān)于更多操作方式詳細(xì)解答,本篇基于前面的知識點進(jìn)行操作,如果不了解可以先看之前的文章
Python爬蟲(1)一次性搞定Selenium(新版)8種find_element元素定位方式
Python爬蟲(2)-Selenium控制瀏覽器
Python爬蟲(3)-Selenium結(jié)合pywin32模擬鍵盤操作
Python爬蟲(4)-Selenium模擬鼠標(biāo)操作
Python爬蟲(5)-selenium用顯式等待、隱式等待、強(qiáng)制等待,解決反復(fù)爬取網(wǎng)頁時無法定位元素問題
Python爬蟲(6)-selenium用requests、wget、urllib3這3種方法搞定圖片和PDF文件下載
彈窗的樣例主要是基于這個網(wǎng)站,需要測試使用時可以用jQuery Mobile 彈窗
Python爬蟲(7)selenium3種彈窗定位后點擊操作,解決點擊登錄被隱藏iframe無法點擊的登陸問題
- 1.第一種alert彈出彈框,需要點擊確定或取消然后顯示信息
- 2.確認(rèn)框類型的彈窗
- 3.點擊上傳文件類型的彈窗
- 4.解決點擊登錄被隱藏iframe無法點擊的登陸問題
1.第一種alert彈出彈框,需要點擊確定或取消然后顯示信息
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('file:///D:/workhome/te/alert.html')
driver.maximize_window()#窗口最大化
driver.implicitly_wait(5)
at = driver.switch_to.alert
at.accept()#點擊確定
at.dismiss()#點擊取消
點擊后顯示出來
2.確認(rèn)框類型的彈窗
點擊確認(rèn)框-點擊確定就顯示刪除的信息
先用F12,找到這個元素的定位信息傳給selenium,右鍵復(fù)制xpath的地址
from selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()
driver.get('file:///D:/workhome/te/enter.html')
driver.maximize_window()
driver.implicitly_wait(5)
driver.find_element(By.XPATH,('/html/body/div/input')).click()
at = driver.switch_to.alert
at.accept()
3.點擊上傳文件類型的彈窗
上傳完后會顯示一個上傳的信息
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('file:///D:/workhome/te/upload_file.html')
driver.maximize_window()
driver.implicitly_wait(5)
file = r'D:\1.txt'#上傳本地文件
fup = driver.find_element_by_id('file')# 點擊上傳按鈕上傳本地文件
fup.send_keys(file)
4.解決點擊登錄被隱藏iframe無法點擊的登陸問題
某些特殊的網(wǎng)站由于設(shè)置了隱藏iframe導(dǎo)致無法進(jìn)行點擊登錄的情況,對于這種,首先我們需要切換到iframe彈窗,然后再進(jìn)行點擊操作,再對要點擊彈框進(jìn)行點擊即可進(jìn)入到相應(yīng)的頁面
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('登錄的網(wǎng)址')
iframeto = driver.find_element(By.ID,'ptlogin_iframe') #定位第一層iframe窗口
driver.switch_to.frame(iframeto)#切換到對應(yīng)iframe窗口
driver.find_element(By.ID,'需要被點擊的登錄元素').click()
driver.switch_to.default_content()#退出iframe窗口