zoukankan      html  css  js  c++  java
  • python+selenium+new——窗口——网页——切换窗口——切换frame——alert弹窗

    from selenium import webdriver

    driver = webdriver.Firefox() # 指定浏览器驱动 #对象实例化

    --------------------------------------------------------------------------


    url1='https://www.baidu.com' #需要打开的网址

    driver.get(url1) #driver.get("https://www.baidu.com")

    -----------------------------------------------------------------------------
    from time import sleep

    sleep(15)

    ===========================================================================================================================

    from selenium import webdriver

    driver = webdriver.Firefox() # 指定浏览器驱动 #对象实例化

    调用说明

    driver.属性值


    变量说明:

    1.driver.current_url:用于获得当前页面的URL


    2.driver.title:用于获取当前页面的标题


    3.driver.page_source:用于获取页面html源代码


    4.driver.current_window_handle:用于获取当前窗口句柄


    5.driver.window_handles:用于获取所有窗口句柄

    函数说明:


    1.driver.find_element*():定位元素,


    2.driver.get(url):浏览器加载url。 实例:driver.get("http//:www.baidu.com")


    3.driver.forward():浏览器向前(点击向前按钮)。


    4.driver.back():浏览器向后(点击向后按钮)。


    5.driver.refresh():浏览器刷新(点击刷新按钮)。


    6.driver.close():关闭当前窗口,或最后打开的窗口。


    7.driver.quit():关闭所有关联窗口,并且安全关闭session。


    8.driver.maximize_window():最大化浏览器窗口。


    9.driver.set_window_size(宽,高):设置浏览器窗口大小。 driver.set_window_size(400,200) #设置浏览器的宽度和高度 {'width': 1382, 'height': 744}


    10.driver.get_window_size():获取当前窗口的长和宽。


    11.driver.set_window_position(X,Y) #设置浏览器左上角坐标的X,Y值 driver.set_window_position(100,200) {'x': -8, 'y': -8}

    12.driver.get_window_position():获取当前窗口坐标。


    13.driver.get_screenshot_as_file(filename):截取当前窗口。


    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++切换窗口


    14.driver.current_window_handle #获取当前窗口句柄


    15.driver.window_handles #用于获取所有窗口句柄


    --------------------------------------------------------------------------------

    suoyou = driver.window_handles # 用于获取所有窗口句柄


    16.driver.switch_to.window(suoyou[0]) #切换到第一个句柄


    driver.switch_to.window(suoyou[1]) #切换到第二个句柄


    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++切换frame


    17.driver.switch_to.frame() #切换frame


    18.driver.switch_to.default_content() #切换到主页面 #从frame中切回主文档


    19.driver.switch_to.parent_frame() #这是switch_to中独有的方法,可以切换到上一层的frame,对于层层嵌套的frame很有用


    #driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) #复数,定位一组iframe的第一个

    driver.switch_to.frame(driver.find_element_by_tag_name("iframe")) #因为只有一个iframe,这个也可以用

    element = driver.switch_to.active_element 定位到当前聚焦的元素上


    ele_box = driver.switch_to.active_element # 通过定位输当前焦点元素,并再次输入数据

    ele_box.send_keys("12345sdfgh")


    driver.switch_to.frame('frame_name') #name来点位

    driver.switch_to.frame(1) #id来定位

    driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) #用webelement对象来定位,先获取对象

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++alert弹出框

    from selenium.webdriver.common.alert import Alert

    driver.find_element_by_id('alert_button').click() #点击触发弹出框alert
    alt = Alert(driver)


    alt.accept() : 等同于单击“确认”或者“OK”

    alt.dismiss() : 等同于单击“取消”或者“Cancel”

    alt.send_keys() : 发送文本,针对有提交需求的prompt框

    alt.text() : 获取alert文本的内容

    alt.authenticate(username,password) : 验证,针对需要身份验证的alert


    ————————————————————————————————————————————————————


    首先使用switch_to.alert()方法进行定位,然后可以使用下面的操作

    text:返回alert、confirm、prompt中的文字信息;

    accept():接受现有警告框;

    dismiss():解散现有警告框;

    send_keys():在警告框中输入文本(如果可以输入的话);

    20.driver.switch_to.alert.text #获取alert文本框里面的文字


    21.driver.switch_to.alert.dismiss() #点击取消按钮


    22.driver.switch_to.alert.accept() #点击确定按钮


    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++调用js语句

    有些浏览器的页面操作,不能依靠WebDriver提供的API来操作,需要借助JavaScript脚本。

    webdriver提供了execute_script()方法来执行JavaScript代码。


    23.driver.execute_script(js) #调用/执行js语句的方法。

    js = 'window.scrollTo(100,400);' #设置浏览器窗口滚动条的水牌位置和垂直位置


    ============================================================================================================================================================
    ============================================================================================================================================================
    ============================================================================================================================================================


    注意:新建文件夹这个目录已经存在的前提下:


    driver.get_screenshot_as_file('C:\\Users\\del\\Desktop\\新建文件夹\\'+ picture_time +'.png') #保存于桌面已经存在的新建文件夹里:2020-02-15-19-18-38.png


    driver.get_screenshot_as_file('C:\\Users\\del\\Desktop\\新建文件夹\\'+ picture_time2 +'.png') #日期作为文件名:2020-02-15.png


    driver.get_screenshot_as_file('C:\\Users\\del\\Desktop\\新建文件夹\\'+ picture_time3 +'.png') #时分秒作为文件名:19-18-38.png

    ============================================================================================================================================================

    格式化时间:

    import time


    picture_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime(time.time()))

    print(picture_time) # 2020-02-15-19-18-38

    #--------------------------------------------------------------------------------


    picture_time2 = time.strftime("%Y-%m-%d", time.localtime(time.time()))

    print(picture_time2) # 2020-02-15

    #--------------------------------------------------------------------------------


    picture_time3 = time.strftime("%H-%M-%S", time.localtime(time.time()))

    print(picture_time3) # 19-18-38


    =======================================================================================================================================================

  • 相关阅读:
    iOS 开发中的坑与相关技巧
    SDK 封装的相关看法
    线程问题---在iPad上会崩溃,在iPhone上不会崩溃
    添加新手引导页需要注意的几个小点
    iOS 七牛云上传并获取图片----【客户端】
    iOS 线程相关-----绝对de干货
    Vue.js 基础示例
    lib-flexible 结合 WKWebView 的样式错乱解决方法
    基于CommentCoreLibrary简单的弹幕实现
    页面上动态编译及执行java代码
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12318598.html
Copyright © 2011-2022 走看看