1. 程式人生 > >Selenium2+python自動化(學習筆記2)

Selenium2+python自動化(學習筆記2)

from selenium import webdriver
driver = webdriver.Ie()
driver.get=("http://www.baidu.com")
driver.refresh() #頁面重新整理
driver.back()#返回上一頁
driver.forward()#切換下一頁
driver.set_window_size(540,960)#設定視窗大小
driver.maximize_window()
driver.get_screenshot_as_file("d:\\test\\1.jpg")#截圖
driver.quit()
driver.find_element_by_id/name/class_name/tag_name/link_text/partial_link_text/css_selector/xpath()# 元素定位

模擬鍵盤的操作需要先匯入鍵盤模組:from selenium.webdriver.common.keys import Keys
driver.find_element_by_ie("").send_keys(Key.ENTER)

滑鼠事件需要先匯入模組:from selenium.webdriver.common.action_chains import ActionChains
mouse = driver.find_element_by_link_text("設定")
ActionChains(driver).move_to_element(mouse).perform()

右擊滑鼠:context_click()

雙擊滑鼠:double_click()


登入:
# coding:utf-8
from selenium import webdriver
import time
def login(driver, user, password):
driver.get("https://github.com/login")
driver.implicitly_wait(10)
driver.find_element_by_id("login_field").send_keys(user)
driver.find_element_by_id("password").send_keys(password)
driver.find_element_by_name("commit").click()

def logout(driver):
time.sleep(3)
driver.find_element_by_css_selector(".HeaderNavlink.name.mt-1").click()
time.sleep(1)
driver.find_element_by_css_selector(".dropdown-item.dropdown-signout").click()
driver.quit()

if __name__ == "__main__":
driver = webdriver.Firefox()
# 呼叫登入
login(driver, "youruser", "yourpsw")
print("hello yoyo!")
# 呼叫退出
logout(driver)

 

 

識別彈窗

 

不是所有的彈出框都叫alert,在使用alert方法前,先要識別出到底是不是alert。先認清楚alert長什麼樣子,下次碰到了,就可以用對應方法解決。

alert\confirm\prompt彈出框操作主要方法有:

text:獲取文字值

accept() :點選"確認"

dismiss() :點選"取消"或者叉掉對話方塊

send_keys() :輸入文字值 --僅限於prompt,在alert和confirm上沒有輸入框


一、認識alert\confirm\prompt

     1.如下圖,從上到下依次為alert\confirm\prompt,先認清楚長什麼樣子,以後遇到了就知道如何操作了

 

JS處理滾動條

# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
print driver.name
## 回到頂部
#def scroll_top():
#     if driver.name == "chrome":
#        js = "var q=document.body.scrollTop=0"
#     else:
#         js = "var q=document.documentElement.scrollTop=0"
#     return driver.execute_script(js)
# 拉到底部
#def scroll_foot():
#    if driver.name == "chrome":
#         js = "var q=document.body.scrollTop=10000"
#     else:
#         js = "var q=document.documentElement.scrollTop=10000"
#     return driver.execute_script(js)

#滾動到底部
js = "window.scrollTo(0,document.body.scrollHeight)" 
driver.execute_script(js)

#滾動到頂部
js = "window.scrollTo(0,0)" 
driver.execute_script(js)


# 聚焦元素
target = driver.find_element_by_xxxx()
driver.execute_script("arguments[0].scrollIntoView();", target)