• iframe,window,alert切换


    
    
    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 #八种定位方式 ''' 1.创建浏览器驱动 2.访问网站 3.操作事件(如:点击登录按钮) 4.等待下一个事件出现之前需要等待(一般用显性等待) 5.等待结束后,操作下一个事件 6.需要操作iframe时需要先切换到iframe 7.切换结束后就可以操作事件 8.事件结束后想要退出iframe使用driver.switch_to.default_content '''import time #创建浏览器驱动 driver = webdriver.Chrome(service_log_path='E:chromes.log') # driver.fullscreen_window() driver.maximize_window() # driver.implicitly_wait(30) #访问一个网站 driver.get(r'C:UserswangweiPycharmProjectsTestStudy estaaadvssdvhhh.html') #等待弹窗的出现 WebDriverWait(driver,10,1).until(EC.alert_is_present()) #切换alert 你alert不属于html页面元素 return_alert = driver.switch_to.alert print("返回的信息:",return_alert.text) time.sleep(2) return_alert.accept()
    window切换

    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 #八种定位方式 ''' 1.创建浏览器驱动 2.访问网站 3.操作事件(如:点击登录按钮) 4.等待下一个事件出现之前需要等待(一般用显性等待) 5.等待结束后,操作下一个事件 6.需要操作iframe时需要先切换到iframe 7.切换结束后就可以操作事件 8.事件结束后想要退出iframe使用driver.switch_to.default_content ''' import time #创建浏览器驱动 driver = webdriver.Chrome(service_log_path='E:chromes.log') # driver.fullscreen_window() driver.maximize_window() # driver.implicitly_wait(30) #访问一个网站 driver.get('https://www.baidu.com/') #在百度输入框种输入柠檬班 driver.find_element_by_id("kw").send_keys("柠檬班") time.sleep(1) #点击确定 driver.find_element_by_id("su").click() #等待这个元素的显示 WebDriverWait(driver,5,1).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="3"]/h3/a/em[text()="柠檬班"]'))) time.sleep(1) ''' 这里点击百度贴吧之前要判断是不是窗口有被打开 先获取窗口句柄 ''' handles = driver.window_handles print(handles) #等待一秒钟后进入柠檬班百度贴吧 driver.find_element_by_xpath('//*[@id="3"]/h3/a/em[text()="柠檬班"]').click() ''' 等待新窗口的打开 ''' WebDriverWait(driver,20,1).until(EC.new_window_is_opened(handles)) handles2 = driver.window_handles #再次获取打开的窗口总数 print(handles2) ''' 方法二 window切换,获取打开窗口的句柄,就是是窗口的总数列表 handles = driver.window_handles print(handles) #获取当前窗口的句柄 print(driver.current_window_handle) #切换到弹出的最后一个窗口 driver.switch_to.window(handles[-1]) 等待关注显示,在操作 ''' driver.switch_to.window(handles2[-1]) WebDriverWait(driver,10,1).until(EC.visibility_of_element_located((By.ID,'j_head_focus_btn'))) time.sleep(1) driver.find_element_by_id("j_head_focus_btn").click()

    iframe切换

    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   #八种定位方式
    '''
    1.创建浏览器驱动
    2.访问网站
    3.操作事件(如:点击登录按钮)
    4.等待下一个事件出现之前需要等待(一般用显性等待)
    5.等待结束后,操作下一个事件
    6.需要操作iframe时需要先切换到iframe
    7.切换结束后就可以操作事件
    8.事件结束后想要退出iframe使用driver.switch_to.default_content
    
    '''
    import time
    #创建浏览器驱动
    driver = webdriver.Chrome(service_log_path='E:chromes.log')
    # driver.implicitly_wait(30)
    #访问一个网站
    driver.get('https://ke.qq.com/')
    
    #点击登录按钮
    driver.find_element_by_id("js_login").click()
    
    WebDriverWait(driver,5,1).until(EC.presence_of_element_located((By.XPATH,'//a[@class="js-btns-enter btns-enter btns-enter-qq"]')))
    print("okokokok")
    # time.sleep(5)
    
    driver.find_element_by_xpath('//a[@class="js-btns-enter btns-enter btns-enter-qq"]').click()
    
    #切换到iframe
    # WebDriverWait(driver,5,1).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,'//*[@class="qrlogin_img_out"]')))
    '''
    切换到iframe的两种方式,frame_to_be_available_and_switch_to_it这个函数已经包含switch_to.frame表示已经切换到iframe,后面只等接一个iframe地址参数就行
    '''
    WebDriverWait(driver,5,1).until(EC.frame_to_be_available_and_switch_to_it("login_frame_qq"))
    '''
    下面是另一种方式,
    '''
    # driver.switch_to.frame("login_frame_qq")
    # time.sleep(3)
    #点击账号密码登录
    driver.find_element_by_id('switcher_plogin').click()
    
    time.sleep(3)
    #从iframe回到默认的页面种(一般就是f12最开始的html)
    driver.switch_to.default_content()
    print("我已经切换到主界面")
    # driver.switch_to.parent_frame()  #返回父级iframe
    
    #切换2
    #获取所有窗口的总数和句柄
    handles = driver.window_handles
  • 相关阅读:
    java String 转Json报错 java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntim
    Idea 进行断点调试的 快捷键
    spring AOP的使用步骤
    AOP的定义和原理
    SpringBoot入门篇--使用IDEA创建一个SpringBoot项目
    详解CI、CD相关概念
    intellij idea 的全局搜索快捷键方法
    面向对象之工厂模式与构造函数模式的区别
    冒泡排序和快速排序
    java里的数组和list分别在什么情况下使用?
  • 原文地址:https://www.cnblogs.com/TKOPython/p/13550607.html
Copyright © 2020-2023  润新知