zoukankan      html  css  js  c++  java
  • 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()
    

    在窗口和框架之间移动

    
    
    
    
    
    
  • 相关阅读:
    Treap 模板 poj1442&hdu4557
    2016多校第六场题解(hdu5793&hdu5794&hdu5795&hdu5800&hdu5802)
    hdu5785--Interesting(manacher)
    hdu5792--World is Exploding
    HDU5791--Two (DP)
    HDU5781--ATM Mechine(概率dp)
    hdu5773--The All-purpose Zero(LIS变形)
    hdu5769--Substring(后缀数组)
    poj1743--Musical Theme(后缀数组)
    HDU5739-Fantasia(tarjan求割点)
  • 原文地址:https://www.cnblogs.com/g2thend/p/12493549.html
Copyright © 2011-2022 走看看