Selenium.webdriver屬性大全,常用屬性以及獲取元素屬性值方法的介紹

首先用一段簡短的代碼查看Selenium.webdriver的所有屬性

from selenium import webdriver  # 導入webdriver包
browser=webdriver.Firefox() # 初始化一個火狐瀏覽器實例:driver
print( dir(browser) )  #獲取所有屬性名

紅色字體爲常用的方法!

['CONTEXT_CHROME', 'CONTEXT_CONTENT', 'NATIVE_EVENTS_ALLOWED', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_file_detector', '_is_remote', '_mobile', '_switch_to', '_unwrap_value', '_web_element_cls', '_wrap_value', 'add_cookie', 'application_cache', 'back', 'binary', 'capabilities', 'close', 'command_executor', 'context', 'create_web_element', 'current_url', 'current_window_handle', 'delete_all_cookies', 'delete_cookie', 'desired_capabilities', 'error_handler', 'execute', 'execute_async_script', 'execute_script', 'file_detector', 'file_detector_context', 'find_element', 'find_element_by_class_name', 'find_element_by_css_selector', 'find_element_by_id', 'find_element_by_link_text', 'find_element_by_name', 'find_element_by_partial_link_text', 'find_element_by_tag_name', 'find_element_by_xpath', 'find_elements', 'find_elements_by_class_name', 'find_elements_by_css_selector', 'find_elements_by_id', 'find_elements_by_link_text', 'find_elements_by_name', 'find_elements_by_partial_link_text', 'find_elements_by_tag_name', 'find_elements_by_xpath', 'firefox_profile', 'forward', 'fullscreen_window', 'get', 'get_cookie', 'get_cookies', 'get_log', 'get_screenshot_as_base64', 'get_screenshot_as_file', 'get_screenshot_as_png', 'get_window_position', 'get_window_rect', 'get_window_size', 'implicitly_wait', 'install_addon', 'log_types', 'maximize_window', 'minimize_window', 'mobile', 'name', 'orientation', 'page_source', 'profile', 'quit', 'refresh', 'save_screenshot', 'service', 'session_id', 'set_context', 'set_page_load_timeout', 'set_script_timeout', 'set_window_position', 'set_window_rect', 'set_window_size', 'start_client', 'start_session', 'stop_client', 'switch_to', 'switch_to_active_element', 'switch_to_alert', 'switch_to_default_content', 'switch_to_frame', 'switch_to_window', 'title', 'uninstall_addon', 'w3c', 'window_handles']
 

常用方法說明:

  1. driver.find_element_by_class_name:通過class樣式的名稱獲取想要的內容
  2. dirver.find_element_by_id:通過id的名稱獲取想要的內容
  3. driver.find_element_by_link_text:通過輸入的文本內容獲取對應的鏈接
  4. driver.find_element_by_css_selector:通過css樣式的名稱獲取想要的內容
  5. driver.find_element_by_tag_name:通過標籤的的名稱獲取想要的內容
  6. driver.find_element_by_xpath:用過某個標籤的xpath路徑獲取想要的內容
  7. driver.current_url:用於獲得當前頁面的URL
  8. driver.title:用於獲取當前頁面的標題
  9. driver.page_source:用於獲取頁面html源代碼
  10. driver.current_window_handle:用於獲取當前窗口句柄
  11. driver.window_handles:用於獲取所有窗口句柄
  12. driver.get(url):瀏覽器加載url。
  13. 實例:driver.get("http//:www.baidu.com")
  14. driver.switch_to_frame(id或name屬性值):切換到新表單(同一窗口)。若無id或屬性值,可先通過xpath定位到iframe,再將值傳給switch_to_frame()
  15. driver.switch_to_window(窗口句柄):切換到新窗口
  16. driver.execute_script(js):執行腳本命令

以下代碼,進一步瞭解以上常用方法中怎樣進行元素查找

# -*- coding: utf-8 -*-
"""
Created on Sat Apr 13 20:41:41 2019

@author: 郭展鵬
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
browser=webdriver.Firefox()
browser.get( 'https://www.taobao.com' )  #訪問淘寶的界面

input_first=browser.find_element_by_id( 'q' ) #通過id查找
#兩種不同的方法,該方法需要from selenium.webdriver.common.by import By
input_first=browser.find_element( By.ID,'q' ) #通過id查找  

input_second=browser.find_element_by_css_selector('#q')  #通過css樣式查找
input_second=browser.find_element( By.CSS_SELECTOR,'#q' )
                                  
input_third=browser.find_element_by_xpath( '//*[@id="q"]' )  #通過xpath路徑查找

以下代碼,進一步瞭解以上常用方法中窗口內、窗口間的操作

# -*- coding: utf-8 -*-
"""
Created on Sat Apr 13 20:50:05 2019

@author: 郭展鵬
"""
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
browser=webdriver.Firefox()
browser.get( 'https://www.baidu.com' )
input=browser.find_element_by_id( 'kw' )  #找到Id=kw的位置
input.send_keys( 'Python' ) #輸入Python並進入
browser.execute_script( 'alert("hello world")' )  #進入由Python關鍵字打開的頁面後彈出 “hello world”的窗口
time.sleep(2)
input.clear()

input.send_keys( 'java' )
input.send_keys( Keys.ENTER )
print( browser.page_source )  #獲取html頁面代碼
print( browser.current_url ) #獲取當前頁面的url地址
time.sleep(2)

browser.close()
browser.quit()
import time
from selenium import webdriver # 導入webdriver包

driver=webdriver.Firefox() # 初始化一個火狐瀏覽器實例:driver

driver.get( 'https://www.baidu.com' ) #通過get的方式,打開百度的網址
driver.execute_script( 'window.open()' )  #執行腳本命令,打開一個新窗口
time.sleep(3) #進程掛起的時間 這裏爲程序運行等待3秒鐘
driver.switch_to.window( browser.window_handles[1] )  #切換到新窗口
driver.get( 'https://www.baidu.com' )  #在新窗口打開百度的界面
time.sleep(3) #進程掛起的時間 這裏爲程序運行等待3秒鐘
driver.switch_to.window( browser.window_handles[0] ) #創建一個句柄,進入第一個窗口
driver.get( 'https://www.zhihu.com' ) #在第一個窗口打開知乎的界面
time.sleep(3) #進程掛起的時間 這裏爲程序運行等待3秒鐘

driver.close()   #關閉瀏覽器
driver.quit()  #停止進程

以下代碼爲浮動窗口內標籤的操作-拖拽,以http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable網址的html爲例子 

詳細操作可以參考網址:https://www.cnblogs.com/cnkai/p/7538267.html(轉載!!!)

# -*- coding: utf-8 -*-
"""
Created on Sat Apr 13 21:10:00 2019

@author: 郭展鵬
"""

from selenium import webdriver
#Action Chains類常用於模擬鼠標的行爲,比如單擊,雙擊,拖拽等行爲,使用下面的方法導入Action Chains類
from selenium.webdriver import ActionChains

browser=webdriver.Firefox()
url='http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'
browser.get(url)
browser.switch_to_frame( 'iframeResult' ) #切換到 浮動框架頁面
source=browser.find_element_by_id('draggable')
target=browser.find_element_by_id('droppable')

actions=ActionChains(browser)
actions.drag_and_drop( source,target )  #從source拖拽到target
actions.perform()

browser.close()
browser.quit()

 

發佈了28 篇原創文章 · 獲贊 27 · 訪問量 6139
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章