課堂筆記-selenium進階

2. 操作表單元素

操作輸⼊框:分爲兩步。 第⼀步:找到這個元素。 第⼆步:使⽤send_keys(value),將數據填充進去 使⽤clear⽅法可以清除輸⼊框中的內容

inputTag.clear()

操作checkbox
因爲要選中checkbox標籤,在⽹⻚中是通過⿏標點擊的。因此想要選中 checkbox標籤,那麼先選中這個標籤,然後執⾏click事件

rememberTag = driver.find_element_by_name("rememberMe") 
rememberTag.click()

操作按鈕
操作按鈕有很多種⽅式。⽐如單擊、右擊、雙擊等。這⾥講⼀個最常⽤的。就 是點擊。直接調⽤click函數就可以了

inputTag = driver.find_element_by_id('su') 
inputTag.click()

選擇select select元素不能直接點擊。因爲點擊後還需要選中元素。這時候selenium就專 ⻔爲select標籤提供了⼀個類selenium.webdriver.support.ui中的Select。將獲取 到的元素當成參數傳到這個類中,創建這個對象。以後就可以使⽤這個對象進 ⾏選擇了。https://www.17sucai.com/boards/53562.html

from  selenium.webdriver.support.ui import Select

3. ⾏爲鏈

有時候在⻚⾯中的操作可能要有很多步,那麼這時候可以使⽤⿏標⾏爲鏈類 ActionChains來完成。⽐如現在要將⿏標移動到某個元素上並執⾏點擊事件

1 actions = ActionChains(driver) 
2 actions.move_to_element(inputTag) 
3 actions.send_keys_to_element(inputTag,'python') 
4 actions.move_to_element(submitTag) 
5 actions.context_click() 
6 actions.click(submitTag) 
7 actions.perform()

還有更多的⿏標相關的操作
click_and_hold(element):點擊但不鬆開⿏標。
context_click(element):右鍵點擊。
double_click(element):雙擊。
更多⽅法請參考:http://selenium-python.readthedocs.io/api.html

頁面等待


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

# cookies = driver.get_cookies() # 返回的是一個列表
#
# # for cookie in cookies:
# #
# #     print(cookie)
#
# # 刪除cookie   # 我先刪除 在獲取 獲取不到了
# driver.delete_cookie('BD_HOME')
#
# print('------------------------------')
#
# print(driver.get_cookie('BD_HOME'))

# time.sleep(2)

# 隱式等待
# driver.implicitly_wait(2)
# driver.find_element_by_id('kwfdfsfsdf').send_keys('python')

try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "kw"))
 )
    time.sleep(2)
finally:
    driver.quit()

# try:
#     # print(10/0)
#     print(10/2)
# except:
#     print('出現問題了')
#
# finally:
#     print('無論是否出錯都會執行該語句')

搜索框自動輸入內容

from selenium import webdriver
import time

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

# driver.find_element_by_id('su').send_keys('python') # 不能輸入內容但是沒有報錯

# driver.find_element_by_id('head_wrapper').send_keys('python') # 不能輸入內容但是報錯了

inputTag = driver.find_element_by_id('kw')

inputTag.send_keys('java')

time.sleep(3)

inputTag.clear()

操作下拉框


from selenium import webdriver
import time
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
# 打開目標網站
driver.get('https://www.17sucai.com/pins/demo-show?id=5926')

# 切換iframe
driver.switch_to_frame(driver.find_element_by_id('iframe'))

# 找到下拉框

selectTag = Select(driver.find_element_by_class_name('nojs'))

# 選擇方式
# 1.根據值來選擇
# selectTag.select_by_value('CA')

# 2.根據索引來選擇
selectTag.select_by_index(3)

登陸qq郵箱


from day10 import password
from selenium import webdriver
import time
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
# 打開目標網站 QQ郵箱
driver.get('https://mail.qq.com/')

# 切換iframe

pwd = password.pwd

login_fram = driver.find_element_by_id('login_frame')

driver.switch_to_frame(login_fram)

# 切換登錄方式
driver.find_element_by_id('switcher_plogin').click()

# 賬號和密碼

driver.find_element_by_id('u').send_keys('192149641')

driver.find_element_by_id('p').send_keys(pwd)

# 按鈕

driver.find_element_by_id('login_button').click()

登陸豆瓣


from selenium import webdriver
import time

driver = webdriver.Chrome()
# 打開豆瓣
driver.get('https://www.douban.com/')

# 切換iframe
login_frame = driver.find_element_by_xpath('//div[@class="login"]/iframe')

driver.switch_to_frame(login_frame)

time.sleep(2)

# 切換登錄方式
driver.find_element_by_xpath('//li[@class="account-tab-account"]').click()
# 選中checkbox選項
driver.find_element_by_id('account-form-remember').click()


# 輸入賬號密碼
driver.find_element_by_id('username').send_keys('xxxxxx')

driver.find_element_by_id('password').send_keys('xxxxxxx')

# 點擊登錄按鈕

driver.find_element_by_class_name('btn-account').click()

多窗口操作


from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/') # 打開百度

driver.execute_script('window.open("https://www.douban.com/")') # 打開豆瓣

# driver.get('https://www.douban.com/')

# driver.close() # 關閉的是百度

# driver.quit() # 2個都關閉了

driver.find_element_by_id('kw').send_keys('python') # 操作的是百度

print(driver.current_url) # 打印網址 打印的是百度

driver.switch_to_window(driver.window_handles[0])

print(driver.current_url)

行爲鏈


from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

# 定位到輸入框
inputTag = driver.find_element_by_id('kw')

# 定位到百度按鈕
submitBtn = driver.find_element_by_id('su')

# 實例化
actions = ActionChains(driver)

# 把鼠標移動到輸入框
actions.move_to_element(inputTag)

# 輸入內容
actions.send_keys_to_element(inputTag,'python')

# 點擊按鈕 百度一下
actions.move_to_element(submitBtn)
actions.click()

# 點擊右鍵
actions.context_click()

# 提交行爲鏈上的操作
actions.perform()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章