• python-web自动化:windows窗口切换/iframe切换/alert弹窗切换


    
    
    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    import time


    loc1 = "//input[@id='kw']"

    driver = webdriver.Chrome()
    driver.get("http://www.baidu.com")
    driver.maximize_window()
    # 搜索腾讯课堂
    loc1 = (By.XPATH, "//input[@id='kw']")
    driver.find_element(*loc1).send_keys("腾讯课堂")

    loc2 = (By.XPATH, '//input[@id="su"]')
    driver.find_element(*loc2).click()
    time.sleep(3)

    # 进入腾讯课堂
    loc3 = (By.XPATH, '//div[@id="1"]/h3/a/em[text()="腾讯课堂"]')
    driver.find_element(*loc3).click()

    # 获取打开的所有窗口
    windows = driver.window_handles
    print(windows)
    # 切换到当前最新打开的窗口
    driver.switch_to.window(windows[-1])


    # 高级版切换窗口
    #loc3 = (By.XPATH, '//div[@id="1"]/h3/a/em[text()="腾讯课堂"]')

    # 获取打开的所有窗口
    #windows = driver.window_handles

    # 点击导致出现新的窗口
    #driver.find_element(*loc3).click()

    # 有新窗口了,重新获取一次窗口列表,再切换到最新窗口
    #WebDriverWait(driver,10).until(EC.new_window_is_opened(windows))

    # 获取打开的所有窗口
    #windows = driver.window_handles

    #print(windows)
    # 切换到当前最新打开的窗口
    #driver.switch_to.window(windows[-1])


    # 点击登录按钮
    time.sleep(2)
    loc3 = (By.XPATH, '//a[text()="登录" and (@id="js_login")]')
    driver.find_element(*loc3).click()

    time.sleep(2)
    loc4 = (By.XPATH, '//div[@class="content-btns"]/a[@data-type="1"]')
    driver.find_element(*loc4).click()

    time.sleep(2)

    # 切换进入ifram 的三种方式
    # 1.id/name属性值来定位
    driver.switch_to.frame("login_frame_qq")

    # 2.WebElement对象来定位
    driver.switch_to.frame(driver.find_element_by_name("login_frame_qq"))

    # 3.frameindex来定位
    driver.switch_to.frame(3)

    #高级版切换ifram
    #WebDriverWait(driver,30).until(EC.frame_to_be_available_and_switch_to_it("login_frame_qq"))


    loc5 = (By.XPATH,'//a[@id="switcher_plogin"]')
    driver.find_element(*loc5).click()
  • 相关阅读:
    占位
    JavaScript(13):用jQuery实现复选框的全、反、取选
    JavaScript(12):jQuery(1)
    JavaScript(11):词法分析
    JavaScript(10):行为(HTML)、结构(CSS)、样式(JS)相分离的页面
    JavaScript(9):非常规form表单提交、弹出框、URL和刷新、定时器
    JavaScript(8):搜索框示例实现、样式操作、属性操作、标签操作
    JavaScript(7):DOM直接查找与间接查找的补充
    JavaScript(6):作用域、面向对象
    开篇杂谈
  • 原文地址:https://www.cnblogs.com/xintiaoab/p/13651425.html
Copyright © 2020-2023  润新知