• selenium之浏览器页面控制(python)


    1.浏览器的前进与后退

     1 # _*_ coding:utf-8 _*_
     2 # 导入webdriver包
     3 from selenium import webdriver
     4 from time import sleep
     5 driver = webdriver.Firefox()
     6 driver.get("https://www.baidu.com/")
     7 sleep(5)
     8 print("访问news页")
     9 driver.get("http://news.baidu.com/")
    10 sleep(5)
    11 driver.back()#浏览器后退
    12 sleep(5)
    13 driver.forward()#浏览器前进
    14 sleep(5)
    15 driver.refresh()#浏览器刷新
    16 sleep(5)
    17 driver.quit()

    2.浏览器窗口大小控制

     1 #!/usr/bin/env python
     2 # _*_ coding:utf-8 _*_
     3 # 导入webdriver包
     4 from selenium import webdriver
     5 from time import sleep
     6 driver = webdriver.Firefox()
     7 driver.get("https://www.baidu.com/")
     8 sleep(5)
     9 driver.set_window_size(800,600) #浏览器设置大小
    10 sleep(5)
    11 driver.maximize_window()    #浏览器全屏
    12 sleep(5)
    13 driver.quit()

     3.页面iframe窗口切换

    iframe.html示例
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>iframe实例</title>
    </head>
    <body>
        <div class = "alert" align = "center">The link
            <a class = "alert-link" href="https://www.baidu.com/">baidu</a>
        </div>
        <div class = "row-fluid" align = "center">
            <div class = "span-iframe" align = "center">
                <h4 align = "center">iframe</h4>
                <iframe id ="iname" name = "nf" src = "https://www.baidu.com/" width = "800" height = "600"></iframe>
            </div>
        </div>
    </body>
    </html>

    python代码控制

     1 # iframe表单切换
     2 from selenium import webdriver
     3 from time import sleep
     4 driver = webdriver.Firefox()    #创建火狐对象
     5 driver.get("file:///C:/Users/Administrator/Desktop/iframe.html")
     6 driver.switch_to.frame("iname") #跳到指定的frame
     7 driver.find_element_by_xpath('//*[@id="kw"]').send_keys("selenium")
     8 driver.find_element_by_xpath('//*[@id="su"]').click()
     9 sleep(10)
    10 driver.switch_to.parent_frame()    #跳到上一级
    11 driver.find_element_by_xpath('/html/body/div[1]/a').click()
    12 sleep(10)
    13 driver.quit()   #关闭浏览器

    4.Alert弹框处理

    alert.html示例
    <!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html>
    <head>
    <title>Alert Test</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    </head>
    <body>
    <h2>Alert Test</h2>
    
    <script type="text/javascript">
    function showName(){
        alert("此处展示姓名");
    }
    function showPassword(){
        alert("此处展示密码");
    }
    function showMessage(){
        alert("这里是注意事项");    
    }
    </script>
    <form name="f1">
        <input type="text" name="t1" value="请确认您的信息"><br><br>
        <input type="button" name="b1" value="姓名确认" onclick="showName()"><br>
        <input type="button" name="b2" value="密码确认" onclick="showPassword()"><br>
        <input type="button" name="b3" value="提示" onclick="showMessage()"><br>
    </form>
    </body>
    </html>

    python代码控制

     1 # Alert弹框处理
     2 from selenium import webdriver
     3 from time import sleep
     4 driver = webdriver.Firefox()    #创建火狐对象
     5 driver.get("file:///C:/Users/Administrator/Desktop/alert.html")
     6 driver.find_element_by_xpath('/html/body/form/input[2]').click()
     7 print(driver.switch_to.alert.text)  #输出alert弹框中的文本
     8 # driver.switch_to.alert.accept() #接受警示框
     9 driver.switch_to.alert.dismiss()   #解散警告框
    10 sleep(5)
    11 driver.quit()   #关闭浏览器

    5.cookie控制

    百度为例

     1 # cookie
     2 from selenium import webdriver
     3 from time import sleep
     4 driver = webdriver.Firefox()    #创建火狐对象
     5 driver.get("https://www.baidu.com/")
     6 cookies = driver.get_cookies()
     7 print(cookies)
     8 for cookie in cookies:
     9     print("name = %s"%cookie["name"])
    10 driver.quit()

    6.JS操作(滚动条处理)

    百度为例

     1 # JS操作
     2 from selenium import webdriver
     3 from time import sleep
     4 driver = webdriver.Firefox()    #创建火狐对象
     5 driver.get("https://www.baidu.com/")
     6 driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")#通过xpath定位
     7 driver.find_element_by_xpath("//*[@id='su']").click()
     8 driver.set_window_size(800,600)
     9 sleep(5)
    10 print("要执行了")
    11 js = "window.scrollTo(200,0)" #100,500对应的是x,y轴
    12 driver.execute_script(js)
    13 sleep(10)
    14 driver.quit()

    7.截图

     1 # 截图
     2 from selenium import webdriver
     3 from time import sleep
     4 driver = webdriver.Firefox()    #创建火狐对象
     5 driver.get("https://www.baidu.com/")
     6 driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")#通过xpath定位
     7 driver.find_element_by_xpath("//*[@id='su']").click()
     8 sleep(5)
     9 driver.get_screenshot_as_file("D:\用户目录\下载\baidu.png")
    10 sleep(10)
    11 driver.quit()

    8.文件上传

    uploadfile.html示例
    <html>
        <body>
        <div>
            <form name="form1" action="fileUpload.php" method="post" enctype="multipart/form-data">
                <label for="file">File:</label>
                    <input type="file" name="file" id="file" /> 
                    <br />
                    <input type="hidden" name="multi" value="false"/>
                    <input type="submit" name="submit" value="Submit Single" />
            </form>
        </div>
        </body>
    </html>

    python代码控制

    1 # 文件上传
    2 from selenium import webdriver
    3 driver = webdriver.Firefox()    #创建火狐对象
    4 driver.get("file:///C:/Users/Administrator/Desktop/uploadfile.html")
    5 driver.find_element_by_xpath("//*[@id='file']").send_keys("D:用户目录下载我是个算命先生.txt")#打开文件

    结果展示

     
  • 相关阅读:
    python标准库&多线程
    filter()函数
    python itertools模块
    lambda()函数
    python 基础学习六:字符串方法总结
    装饰器
    map()函数
    python算法题
    Delphi XE2真的快来了吗?
    如何设计出留住买家的B2C网站
  • 原文地址:https://www.cnblogs.com/zhangyating/p/8385996.html
Copyright © 2020-2023  润新知