import requests
import sys
import io
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select


sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') #改变标准输出的默认编码


browser = webdriver.Chrome('C:\chromedriver.exe')


#登录页面
url = r'http://192.168.102.103:8080/mu/'


# 访问登录页面
browser.get(url)


# 等待一定时间,让js脚本加载完毕
browser.implicitly_wait(3)


#输入用户名
username = browser.find_element_by_id('username')
username.send_keys('admin')


#输入密码
password = browser.find_element_by_id('password')
password.send_keys('11111')


#点击“登录”按钮
login_button = browser.find_element_by_xpath('//td/img[1]')
login_button.click()


browser.switch_to.frame(browser.find_element_by_xpath('/html/frameset[1]/frameset[1]/frameset[1]/frameset[1]/frame[2]'))


butten = browser.find_element_by_id('Bar_panel2_c')
butten.click()


butten = browser.find_element_by_xpath('//div[@id="Bar_panel2_b0"]/img[1]')
actions = ActionChains(browser)
actions.click(butten)
actions.perform()


browser.switch_to.default_content();
browser.switch_to.frame(browser.find_element_by_xpath('/html/frameset[1]/frameset[1]/frameset[2]/frameset[1]/frame[2]'))


link = browser.find_element_by_link_text("aaa")
print(link.get_attribute('href'))



#butten = browser.find_element_by_xpath('//table[@id="table0"]/tbody/tr[5]/td[1]/input[1]')
butten = browser.find_element_by_xpath('//input[@value=" 添 加 "]')
butten.click()


select = Select(browser.find_element_by_id('centerId'))
select.select_by_index(1)


editIP = browser.find_element_by_id('serverIp')
editIP.send_keys('127.0.0.1')


editname = browser.find_element_by_id('serverName')
editname.send_keys('name')


editname = browser.find_element_by_id('keepAlivePeriod')
editname.send_keys('59')


editloginname = browser.find_element_by_id('serverLoginName')
editloginname.send_keys('admin')


editlocation = browser.find_element_by_id('installLocation')
editlocation.send_keys('安装位置')


editdesc = browser.find_element_by_id('description')
editdesc.send_keys('设备描述')


#网页截图
browser.save_screenshot('C:/picture1.png')
#打印网页源代码
#print(browser.page_source.encode('utf-8').decode())


browser.implicitly_wait(10)


browser.quit()

 

selenium自动测试的更多相关文章

  1. 用Selenium自动化测试时,让ChromeDriver中不显示“正受到自动测试软件控制”

    背景: 在用Selenium做自动化测试的时候,默认ChromeDriver是会提示“Chrom正受到自动测试软件控制”的.如下图这样.但我们有些场景下,不希望这个提示出现.本文探索了几种语言去掉这个 ...

  2. 开源you-get项目爬虫,以及基于python+selenium的自动测试利器

    写在前面 爬虫和自动测试,对于python来说是最合适不过也是最擅长的. 开源的项目也很多,例如you-get项目https://github.com/soimort/you-get.盗链和爬虫神器. ...

  3. [Python爬虫] Selenium自动访问Firefox和Chrome并实现搜索截图

    前两篇文章介绍了安装,此篇文章算是一个简单的进阶应用吧!它是在Windows下通过Selenium+Python实现自动访问Firefox和Chrome并实现搜索截图的功能.        [Pyth ...

  4. Nightwatch.js – 轻松实现浏览器的自动测试

    Nightwatch.js 是一个易于使用的,基于 Node.js 平台的浏览器自动化测试解决方案.它使用强大的 Selenium WebDriver API 来在 DOM 元素上执行命令和断言. 语 ...

  5. PHP自动测试框架Top 10

    对于很多PHP开发新手来说,测试自己编写的代码是一个非常棘手的问题.如果出现问题,他们将不知道下一步该怎么做.花费很长的时间调试PHP代码是一个非常不明智的选择,最好的方法就是在编写应用程序代码之前就 ...

  6. Qtp自动测试工具

    QTP是基于GUI界面的自动化测试工具,用于系统的功能测试. QTP录制的是鼠标和键盘的消息.QTP录制回放时基于windows操作系统的消息机制.QTP在录制时监听应用程序的消息,监听到之后把消息放 ...

  7. 自动测试工具(Jmeter,qtp等)

     loadrunner.Selenium.QTP三者区别?    Loadrunner是商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试.  Selenium是开源的web自动测试工具,免费 ...

  8. Android WebDriver 浏览器自动测试工具介绍

    Selenium WebDriver 是浏览器自动测试工具,提供轻量级和优雅的方式来测试web应用.Selenium WebDriver作为Android SDK extra,支持Android 2. ...

  9. 使用 PHPUnit 和 Selenium 进行测试

    适用于 PHP 的 NetBeans IDE 支持 PHPUnit 自动测试.通过 PHPUnit,NetBeans IDE 可为 PHP 提供代码覆盖率,这与 IDE 为 Python 提供的代码覆 ...

随机推荐

  1. suoi31 最近公共祖先2 (倍增lca)

    根为r时x.y的公共祖先,就是lca(x,r),lca(x,y),lca(r,y)中深度最大的那一个,不要再在倍增的时候判来判去还判不对了... #include<bits/stdc++.h&g ...

  2. bzoj2456 mode (思路)

    不能把数存下来. 于是来打擂台,如果新数和他不相等,cnt--,否则cnt++.如果cnt<=0了,那个新数就来把它顶掉,然后把cnt重置成1 最后在台上的就是那个次数大于N/2的众数 (连&l ...

  3. Philosopher

    Description ​ 给你一个长度为\(n\)的序列\(a_i\)和\(m\)次操作,要支持两种操作: \(1\ l\ r\ flag\):将\([l,r]\)内的数排序,\(flag=1\)表 ...

  4. 记踩坑--Flask Web开发:S6电子邮件 ----[Errno 11004] getaddrinfo failed

    必须要记录下踩过的坑,一来,为后来者铺路,二来,实在摔得疼,提醒自己写代码要谨小慎微. [Errno 11004] getaddrinfo failed 1.先排除邮箱账号和授权码的错误 测试如下代码 ...

  5. python XML梳理

    导入ElementTree模块 import xml.etree.ElementTree as ET 为了创建一个element实例,使用Element 构造函数或者SubElement()工厂函数. ...

  6. Helm一:简介

    目录 什么是Helm Helm解决的问题 Helm原理 Helm架构 Helm功能 Helm三个重要概念 Helm组件 Helm Client Tiller Server Helm实现 什么是Helm ...

  7. Google Email 帐户泄露

    最初爆出来的网站是:https://forum.btcsec.com/index.php?/topic/9426-gmail-meniai-parol/,是一个俄罗斯论坛,然后..就流传开来了... ...

  8. 【DS】排序算法之快速排序(Quick Sort)

    一.算法思想 快速排序,顾名思义,效率比较于其他算法,效率比较高.<算法导论>也专门对其进行讲解.其算法设计使用分治思想,如下: 1)从数组A[p...r]中选择一个元素,将数组划分成两个 ...

  9. list里面放的实体对象,页面用c:foreach应该怎么取?

    关于网友提出的" list里面放的实体对象,页面用c:foreach应该怎么取?"问题疑问,本网通过在网上对" list里面放的实体对象,页面用c:foreach应该怎么 ...

  10. uva 10625 Board Wrapping

    https://vjudge.net/problem/UVA-10652 给出n个长方形,用一个面积尽量小的凸多边形把他们围起来 求木板占包装面积的百分比 输入给出长方形的中心坐标,长,宽,以及长方形 ...