1. 程式人生 > >python網路之selenium操作元素

python網路之selenium操作元素

 

 clear 清除元素的內容,如果可以的話(輸入框)
 send_keys 在元素上模擬按鍵輸入
 click 單擊元素
 submit 提交表單
我們通過獲取輸出獲取到一個物件

>>> type(browser.find_element_by_id("index-nav"))
<class 'selenium.webdriver.remote.webelement.WebElement'>
>>> dir(browser.find_element_by_id("index-nav"))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', 
'__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', 
'__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 
'_execute', '_id', '_parent', '_upload', '_w3c', 'clear', 'click', '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', 'get_attribute', 'get_property', 'id', 'is_displayed', 
'is_enabled', 'is_selected', 'location', 'location_once_scrolled_into_view', 'parent', 
'rect', 'screenshot', 'screenshot_as_base64', 'screenshot_as_png', 'send_keys', 'size', 
'submit', 'tag_name', 'text', 'value_of_css_property']

上面的方法我們常用的有 clear,click,find系列get_attribute獲取屬性get_property等等。

attribute property
python的動態屬性 java的靜態屬性
get獲取,set設定 .xxx直接訪問
   

 

 

 

 

連結

然後我們通過方法進行擷取指定截圖

>>> data = browser.find_element_by_id("index-nav").screenshot_as_png
>>> type(data)
<class 'bytes'>
>>> fd = open("aaa.png","wb+")
>>> fd.write(data)
4920
>>> fd.close()

得到了下面的資料

下面是通過driver進行更加高階的操作

['__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', 
'capabilities', 'close', 'command_executor', 'create_options', 'create_web_element', 
'current_url', 'current_window_handle', 'delete_all_cookies', 'delete_cookie', 
'desired_capabilities', 'error_handler', 'execute', 'execute_async_script', 
'execute_cdp_cmd', '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', 'forward', 'fullscreen_window', 'get', 'get_cookie', 
'get_cookies', 'get_log', 'get_network_conditions', 'get_screenshot_as_base64', 
'get_screenshot_as_file', 'get_screenshot_as_png', 'get_window_position', 
'get_window_rect', 'get_window_size', 'implicitly_wait', 'launch_app', 'log_types', 
'maximize_window', 'minimize_window', 'mobile', 'name', 'orientation', 'page_source', 
'quit', 'refresh', 'save_screenshot', 'service', 'session_id', 'set_network_conditions', 
'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', 'w3c', 'window_handles']
var child=document.getElementById("p1");
child.parentNode.removeChild(child);

可以通過execute_script方法呼叫js進行刪除某一個元素。