selenium多表单切换以及多窗口切换、警告窗处理

selenium表单切换

在做UI自动化,有时候要定位的元素属性在页面上明明是唯一的。却怎么也不执行对元素的操作动作,这时候多半是iframe表单在作怪。

  1. 切入表单:id
    driver.switch_to_frame("id") #id属性值切入表单
  2. 切入表单:name
    driver.switch_to_frame("name") #name属性值切入表单
  3. 切入表单默认取表单的id或name属性,如果没有id或name属性值,下通过xpath或css定位,然后再将定位对象传给switch_to_frame()
    value = driver.find_element_by_xpath("//input[@text='kw']")
    driver.switch_to_frame(value)
  4. 返回上级表单
    driver.switch_to_parent_content()
  5. 返回最外层表单
    driver.switch_to_default_content()

selenium窗口切换

  1. 获得当前窗口句柄
    driver.current_window_handle
  2. 获得所有窗口句柄
    driver.window_handles
  3. 切换到相应的窗口,跟切换表单类似
    driver.switch_to_window("value")

警告窗处理

    1. 解除警告窗:dismiss()
      driver_switch_to_alert().dismiss()
    2. 接受警告窗:accept
      driver_switch_to_alert().accept()
    3. 获取警告窗文本信息:text
      driver.switch_to_alert().text
    4. 发送文本信息到警告窗:send_keys()
      driver.switch_to_alert().send_keys("value")