• selenium 操作多个窗口间切换


    #coding=gbk
    '''
    selenium多个窗口间切换
    '''
    
    from selenium import webdriver as wd
    from selenium.webdriver import ActionChains as AC
    from selenium.webdriver.common.keys import Keys
    import time
    import selenium.webdriver.support.ui as ui
    
    bc=wd.Chrome(executable_path='f:\chromedriver')
    bc.get('http://www.baidu.com')
    time.sleep(1)
    
    bc.find_element_by_id('kw').send_keys('w3school')
    AC(bc).send_keys(Keys.ENTER).perform()
    
    #记录当前窗口对象
    now_handle=bc.current_window_handle
    time.sleep(3)
    
    #点击搜索结果的 w3chool 在线教程链接
    #bc.find_element_by_partial_link_text('w3school').click()
    
    #动态获取网页加载完成
    wait = ui.WebDriverWait(bc,10)
    wait.until(lambda bc:bc.find_element_by_xpath('//*[@id="1"]/h3/a'))
    bc.find_element_by_xpath('//*[@id="1"]/h3/a').click()
    time.sleep(5)
    
    #2个窗口间切换操作
    for i in bc.window_handles:
        bc.switch_to.window(i)
        print(bc.title)
    
        #如果是新窗口,则操作
        if bc.title!='w3school_百度搜索':
            try:
                wait.until(lambda bc:bc.find_element_by_link_text('HTML5'))
                bc.find_element_by_partial_link_text('HTML5').click()
            except:
                print('HTML5操作失败!!')
            time.sleep(3)
        
    
    bc.switch_to.window(now_handle)
    bc.find_element_by_id('kw').clear()
    bc.find_element_by_id('kw').send_keys('我是谁')
    AC(bc).send_keys(Keys.ENTER).perform()
  • 相关阅读:
    磁盘及分区管理
    用户和文件权限管理
    分割文件命令split
    去除重复命令uniq
    数据连接命令join
    数据剪切命令cut和数据粘贴命令pastte
    排序命令sort
    koa-router
    koa入门
    require.ensure的用法;异步加载-代码分割;
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/10648711.html
Copyright © 2020-2023  润新知