1.先訪問頁面,例如百度
運行后 火狐打開自動跳轉至百度頁面,並在控制台打印對應數據
代碼如下:
from selenium import webdriver#導包 #打開驅動 driver = webdriver.Firefox() #定義url地址 url = "http://www.baidu.com" #訪問對應網址 driver.get(url) #最大化窗口 driver.maximize_window() #控制台打印瀏覽器窗口的長寬 print(driver.get_window_size()) #打印網頁頭部信息 print(driver.title) #判斷一下是不是已經跳轉至百度了 if driver.title =="百度一下,你就知道": #跳轉之后打印 print("已跳轉") #控制台打印網頁url print(driver.current_url)
2.頁面跳轉
從58的首頁點擊跳轉到租房頁面,再點擊大興
代碼如下
from selenium import webdriver #打開游覽器 driver = webdriver.Firefox() #定義網址58同城 url = "https://bj.58.com/" #訪問58網址 driver.get(url) #獲取句柄,打印前面的句柄 print("點擊之前",driver.window_handles) #用xpath的方式獲取租房在58位置 ele = driver.find_element_by_xpath(".//*[@id='fcNav']/em/a[1]") #點擊租房 ele.click() #**因為點擊租房后頁面會跳轉,再想利用自動化定位會定位不到,所以要將句柄也跳轉 #獲取句柄 list_window = driver.window_handles #打印句柄 print("點擊之后",driver.window_handles) #將句柄切換至第二個頁面 driver.switch_to.window(list_window[1]) #以文本的形式獲取大興的位置 #ele1 = driver.find_element_by_link_text("大興") #以xpath定位大興 ele1 = driver.find_element_by_xpath("html/body/div[6]/div[2]/div[2]/dl[1]/dd/a[6]") #點擊大興 ele1.click()
3.彈窗事件
代碼運行后
from selenium import webdriver import time #打開瀏覽器 driver = webdriver.Firefox() #訪問網址 driver.get("http://www.baidu.com") #用id的方式定位設置 ele = driver.find_element_by_id("s-usersetting-top") #點擊 ele.click() #用class的方式定位搜索設置 ele1 = driver.find_element_by_class_name("setpref") #點擊 ele1.click() #id定位每頁50行 ele2 = driver.find_element_by_id("nr_3") #點擊 ele2.click() #class定位保存設置 ele3 = driver.find_element_by_class_name("prefpanelgo") #點擊 ele3.click() #關閉彈窗 #定義一個延遲,不然太快看不見了 time.sleep(5) #關閉彈窗 driver.switch_to.alert.accept()
彈出框操作
1) 進入到彈出框中
driver.switch_to.alert
2) 接收警告
accept()
3) 解散警告
dismiss()
4) 發送文本到警告框
send_keys(data)
4.下拉框點擊
代碼如下
from selenium import webdriver import time driver = webdriver.Firefox()#打開瀏覽器 driver.get("http://www.baidu.com")#訪問url ele = driver.find_element_by_id("s-usersetting-top")#id定位設置 ele.click()#點擊 ele1 = driver.find_element_by_xpath(".//*[@id='s-user-setting-menu']/div/a[2]")#xpath定位高級搜索 ele1.click()#點擊 time.sleep(2)#延遲 ele2 = driver.find_element_by_xpath(".//*[@id='adv-setting-gpc']/div/div[1]/i[1]")#xpath定位整個下拉框 ele2.click()#點擊 list_ele = driver.find_elements_by_class_name("c-select-item")#獲取整個下拉框 # print(list_ele)#控制台打印下拉框 # #循環輸出下拉框內容 # list_ele[2].click() for list_i in list_ele: print(list_i.text) if list_i.text =="最近一周":#對比后點擊跳轉 list_i.click()
5.8大元素定位
代碼如下
from selenium import webdriver from selenium.webdriver.common.by import By #打開驅動 driver = webdriver.Firefox() url = "http://www.baidu.com" #url = "https://cn.bing.com/" #訪問對應網址 driver.get(url) #第一種方式找元素id # ele = driver.find_element_by_id("kw") # ele.send_keys(12306) # ele = driver.find_element(By.ID,"kw") # ele.send_keys(12306) #第二種方式name # ele = driver.find_element_by_name("wd") # ele.send_keys(12306) #第三種方式class # ele = driver.find_element_by_class_name("s_ipt") # ele.send_keys(12306) #第四種方式xpath # ele = driver.find_element_by_xpath(".//*[@id='kw']") # ele.send_keys(12306) #第五種方式css # ele = driver.find_element_by_css_selector("#kw") # ele.send_keys(12306) #第六種方式link text # ele = driver.find_element_by_link_text("地圖") # ele.click() #第七種partail link text # ele = driver.find_element_by_partial_link_text("地") # ele.click() #第八種方式tag # ele = driver.find_element_by_tag_name("input") # ele.send_keys(12306)
6.模擬qq登錄
代碼如下
from selenium import webdriver #打開游覽器 driver = webdriver.Firefox() #登錄QQ url = "https://qzone.qq.com/" driver.get(url) #獲取元素 #定位表單元素 ele_bd = driver.find_element_by_id("login_frame") driver.switch_to.frame(ele_bd) ele = driver.find_element_by_xpath(".//*[@id='switcher_plogin']") ele.click() #輸入賬號 ele2 = driver.find_element_by_id("u") ele2.send_keys(766603163) #輸入密碼 ele3 = driver.find_element_by_id("p") ele3.send_keys("lly19845291024") ele4 = driver.find_element_by_id("login_button")#定位登錄按鈕 ele4.click()