Loading

selenium-2:导航及页面交互

2,导航与页面交互

启动关闭浏览器


关闭浏览器有两种方式:
close方法
quit方法


close方法关闭当前的浏览器窗口,quit方法不仅关闭窗口,还会彻底的退出webdriver,释放与driver server之间的连接

获取网页源码

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
print(browser.page_source)#browser.page_source是获取网页的全部html
browser.close()

一些方法

##浏览器对象的方法
from selenium import webdriver
driver = webdriver.Chrome()



driver.add_cookie(                         
driver.find_element_by_css_selector(        
driver.get_log(                             
driver.session_id
driver.application_cache                    
driver.find_element_by_id(                  
driver.get_network_conditions(              
driver.set_network_conditions(
driver.back(                                
driver.find_element_by_link_text(           
driver.get_screenshot_as_base64(           
driver.set_page_load_timeout(
driver.capabilities                         
driver.find_element_by_name(                
driver.get_screenshot_as_file(              
driver.set_script_timeout(
driver.close(                              
driver.find_element_by_partial_link_text(   
driver.get_screenshot_as_png(               
driver.set_window_position(
driver.command_executor                    
driver.find_element_by_tag_name(            
driver.get_window_position(                 
driver.set_window_rect(
driver.create_options(                      
driver.find_element_by_xpath(               
driver.get_window_rect(                     
driver.set_window_size(
driver.create_web_element(                  
driver.find_elements(                       
driver.get_window_size(                     
driver.start_client(
driver.current_url                          
driver.find_elements_by_class_name(         
driver.implicitly_wait(                     
driver.start_session(
driver.current_window_handle                
driver.find_elements_by_css_selector(       
driver.launch_app(                          
driver.stop_client(
driver.delete_all_cookies(                  
driver.find_elements_by_id(                 
driver.log_types                            
driver.switch_to
driver.delete_cookie(                       
driver.find_elements_by_link_text(          
driver.maximize_window(                     
driver.switch_to_active_element(
driver.desired_capabilities                 
driver.find_elements_by_name(               
driver.minimize_window(                     
driver.switch_to_alert(
driver.error_handler                       
driver.find_elements_by_partial_link_text(  
driver.mobile                               
driver.switch_to_default_content(
driver.execute(                             
driver.find_elements_by_tag_name(          
driver.name                                 
driver.switch_to_frame(
driver.execute_async_script(                
driver.find_elements_by_xpath(              
driver.orientation                          
driver.switch_to_window(
driver.execute_script(                     
driver.forward(                             
driver.page_source                          
driver.title
driver.file_detector                        
driver.fullscreen_window(                   
driver.quit(                                
driver.w3c
driver.file_detector_context(               
driver.get(                                 
driver.refresh(                             
driver.window_handles
driver.find_element(                        
driver.get_cookie(                          
driver.save_screenshot(                     
driver.find_element_by_class_name(          
driver.get_cookies(                        
driver.service

导航

通过调用get 方法,导航到一个url
browser.get('https://www.taobao.com')

WebDriver将等待页面完全加载(即,触发了onload事件),然后再将控制权返回给测试或脚本。 值得注意的是,如果您的页面在加载时使用了很多AJAX,则WebDriver可能不知道何时完全加载。 如果需要确保此类页面已完全加载,则可以使用等待。

和页面交互

查找元素
示例html

<input type="text" name="passwd" id="passwd-id" />

找到该元素的方法:

element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")

向输入框内输入字符:

element.send_keys("some text")

模拟点击下拉箭头:

element.send_keys(" and some", Keys.ARROW_DOWN)

清空输入框:

element.clear()

填充输入表格

高效处理SELECT 元素的方式

from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_name('name'))
select.select_by_index(index)
select.select_by_visible_text("text")
select.select_by_value(value)

WebDriver还提供用于取消选择所有选定选项的功能

select = Select(driver.find_element_by_id('id'))
select.deselect_all()

我们需要所有默认选定选项的列表,Select类提供了一个返回列表的属性方法

select = Select(driver.find_element_by_xpath("//select[@name='name']"))
all_selected_options = select.all_selected_options

获取所有可用选项

options = select.options

填充表格后进行提交

WebDriver在每个元素上都具有便捷的方法“提交”。 如果在表单中的元素上调用此方法,则WebDriver将在DOM上移动,直到找到封闭的表单,然后在该表单上调用Submit。 如果元素不在表单中,则将引发NoSuchElementException

element.submit()

拖拉元素

element = driver.find_element_by_name("source")
target = driver.find_element_by_name("target")

from selenium.webdriver import ActionChains
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element, target).perform()

在窗口和框架之间移动




posted @ 2020-03-14 18:48  Lust4Life  阅读(347)  评论(0编辑  收藏  举报