zoukankan      html  css  js  c++  java
  • 获取webView页面内窗体句柄

    一般情况下切换上下文之后,就可以操作当前页面的元素控件了,但是,如果有页面跳转,可能窗体发生变化,直接元素查找会失败

    因此,一般对于 WebView 页面内的元素操作,可以先获取所有的窗口句柄,遍历切换到每一个窗口句柄,直到查找到元素即可

    注意:如果是单页面操作,就不涉及到窗体句柄切换

    def find_element_by_web(driver: WebDriver, by: By, selector):
        """
        在webview中查找元素,涉及到切换窗口句柄:handle
        :return:
        """
        # 获取所有的handle
        all_handles = driver.window_handles
    
        result_element = None
    ​
        for handle in all_handles:
            try:
                driver.switch_to.window(handle)
                # 查找方式
                if by == By.XPATH:
                    result_element = driver.find_element(By.XPATH, selector)
                elif by == By.CSS_SELECTOR:
                    result_element = driver.find_element(By.CSS_SELECTOR, selector)
                print('查找成功,直接返回')
                break
            except Exception as e:
                print('查找失败,继续查找')
                pass
    
        return result_element

    仅作为自己查看使用      参考:https://www.jianshu.com/p/e723e7e0546d

  • 相关阅读:
    01 HTTP协议_servlet基础
    JS 08表单操作_表单域
    09 多态
    JS 07 Dom
    JS 06 bom 框窗_页面_定时任务
    JS 05 json
    08 包_继承
    JS 04 Date_Math_String_Object
    【Java每日一题】20161018
    【Java每日一题】20161017
  • 原文地址:https://www.cnblogs.com/aiyumo/p/13438407.html
Copyright © 2011-2022 走看看