当前位置:首页 » 网页前端 » js实现web自动化
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

js实现web自动化

发布时间: 2023-05-22 01:38:25

Ⅰ 用webdriver进行自动化,用js修改隐藏控件的值之后,页面上的值并没有显示出来,请问具体要怎么做

当你修改那个隐藏字段的值时(你肯定是用JS改的链做唯吧?),同时修改那个 i 标记的text不就行了?用jQ写的话:

var val = 1988;
$('input[name="棚培dateForm.year"]').val(val); // 这段代码你应该已经写了
$('.sVal').text(val); // 再加上这段,但请注意class为sVal的标记应该只有这一个胡带,否则……

如果你不想用jQ,当然也没问题,但需要稍微多写点兼容代码(该死的IE8!),如果需要请追问。

Ⅱ [Selenium自动化测试实战] 不打开浏览器如何进行WEB自动化测试

在一般的使用场景下,使用selenium进行web自动化测试都需要打开一个浏览器的实体,测试脚本通过控制webdriver来对浏览器进行操作。但是在一些场景下测试工程师需要在不打开浏览器的情况下进行自动化测试,也就是以headless的方式运行自动化测试。



业界有一些headless的第三方库可以使用,例如大名鼎鼎的PhantomJS。但是这些工具的安装很复杂,同时不一定保证持续的维护。

现在全球最受欢迎的浏览器Chrome在Chrome 59 (Chrome 60 for Windows)版本中已经支持了headless mode,只需要配置一些简单的参数就可以实现。

首先要确认自己机子上的Chrome版本。

require 'selenium-webdriver'

options = Selenium::WebDriver::Chrome::Options.new

options.add_argument('--headless')

options.add_argument('--disable-gpu')

options.add_argument('--remote-debugging-port=9222')

driver = Selenium::WebDriver.for :chrome, options: options

driver.get "https://www.jd.com"

driver.save_screenshot("#{File.dirname(__FILE__)}/#{Time.now.strftime("%F")}")

通过在Selenium::WebDriver::Chrome::Options类的对象中添加argumentoptions.add_argument('--headless'),可以让我们在Chrome在headless模式下运行。

而第二个argument的作用是针对现有bug的work around。第三个argument的作用则是允许我们可以在另外一个浏览器中debug。

为了观测运行的情况,我保存了一个屏幕截图。

相比于之前的headless web自动化方案,Chrome的优势在于设置的方便,甚至可以和当前的框架无缝切换,同时Chrome作为最为主流的浏览器,你也不用担心持续维护的问题。

Ⅲ web自动化测试,使用node.js 与python哪个语言更合适

Node.js是现在WEBAPP快速开发的标配。python的WEB框架还有模板很多。这个取决于你习惯什么方式开发。

如果熟悉 python使用node.js没有压力,可以完美融合。 如果对python不熟悉,node.js可以给你惊喜。

不过就我个人而言python很熟练,python给我的自由度与支撑力度远远大于node.js。 node.js是一些喜欢javascript的极客做的js的后台执行程序。 支持力度显然远远比不上有10几年WEB开发历史的python。

node.js有一个最大的好处是前端与后端的融合比较好。都是JS开发的。有利于前端人员快速开发后台服务器。

再加上node.js大量爆发的各种工具。所以node.js很有前途。 相对python的架构不温不火。

从开发速度来看。两者差不多。从系统维护性上。 python要好很多。

从最高性能上看,python也要好很多。 着名的某团队聊天软件就是node.js架构。

但是限于javascript语言本身的性能以及执行方式,支持力度。 后台开发还是不建议用node.js,除非你有足够的理由 。比如快速开发,比如缺少足够 的后台开发人员,或者是团队成员整体偏前端等。

node.js真的很适合初学者。 特别是正在学习javascript人。 不过node.js想做好就不容易,特别是团队规模超过10个人时,代码很难维护。

v8引擎很强大,大多数测试结果显示node.js比python性能高。这个感觉挺无语。 js在v8上的优化效果的的确确比python解释器要强。这是事实。 不过python如果你用得很熟练的情况下,有很多技巧可以将这些差距缩小,以至于超过,完全没有压力。

比如我这边做一个服务器,通常性能要求很高的情况下,不会使用python做前端,而是使用java+cache做后台服务器前端。 这样性能就远远超过其它的WEB后端服务器了。

python在后处理,批处理,数据处理,快速开发很强大。 WEB方面就当是玩具吧。 算是一种快速 开发的补偿。 做做胶水,连接不同系统的接口还是可以的。

Ⅳ web自动化中页面多个滚动条时的拖动操作

当页面中有多个滚动条控制显示范围时,拖动指定的滚动条,可以通过JS语句来实现document.querySelector('.summary').scrollTop=200;解释: 1.通过在页面中通过选择器进行元素定位 2.将定位到的指定元素scrollTop属性设置为200然后通过driver.execute_script()方法执行js语句即可,需要的小伙伴可以到传智播客的社区看到相关操作的全部解答。传智播客的官网也可以领取到相关的免费的公开课。

Ⅳ web自动化测试之web自动化中操作要点

1、切换iframe:

driver.switch_to.frame(' xxx')

2、浏览器向右移动页面(浏览器中执行JavaScript代码)

driver.execute_script('window.scrollBy(200,0)') # window.scrollBy(x,y)

3、driver.implicitly_wait()和time.sleep()的区别

driver.implicitly_wait(10) #设置寻找元素最大等待时间;

implicitly_wait(5)属于隐式等待,5秒钟内只要找到了元素就开始执行,5秒钟后未找到,就超时;

time.sleep(5)表示必须等待5秒定位。

4、切换到新的目标窗口

#切换webdriver到新的目标窗口

for handle in driver.window_handles:

driver.switch_to.window(handle)

#判断是否进行了目标窗口

title=driver.title

if 'xxxxx' in title:

break

5、当页面广告遮挡了元素,可将页面广告元素删除

element=driver.find_element_by_css_selector('#meiqia-container iframe[name=chat]') driver.execute_script('$(arguments[0]).remove()',element) #将element传给了arguments[0] time.sleep(2)

6、切换浏览器标签页

使用switch_to_window(window),搭配句柄window_handles、current_window_handle使用。

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://www..com")

driver.implicitly_wait(10)

driver.find_element_by_id("kw").send_keys("python")

driver.find_element_by_id("su").click()

driver.find_element_by_xpath("//*[@id='2']/h3/a").click()

#获取当前窗口所有句柄

all_windows = driver.window_handles

#获取当前标签页窗口句柄

current_window = driver.current_window_handle

#切换标签页窗口

for window in all_windows:

if window !=current_window:

print("切换前的窗口名称是:",driver.title)

driver.switch_to_window(window)

time.sleep(2)

print("切换后的窗口名称是:",driver.title)

break

7、切换iframe页面

使用switch_to_frame()、switch_to_default_content(),一般成套使用更好,以防止未切回导致定位失败。

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://ke.qq.com/")

driver.implicitly_wait(10)

#点击登录

driver.find_element_by_class_name("btn-default").click()

time.sleep(0.5)

driver.find_element_by_xpath("//*[@class='js-btns-enter btns-enter btns-enter-qq']").click() time.sleep(2)

#点击账号密码登录

#这里直接定位会失败,需要切换到登录弹窗页面后再进行定位,习惯使用的是2种切换方式

#1.iframe有唯一名称

driver.switch_to_frame("login_frame_qq")

driver.find_element_by_id("switcher_plogin").click()

driver.find_element_by_id("u").send_keys("123456789")

#回切到主页面

driver.switch_to_default_content()

time.sleep(2)

#2.iframe无名字,使用下标进行切换,且下标从0开始

#在页面中查到到当前需要定位的iframe在第3个,所以下标是2

#再次切换到弹窗页面 driver.switch_to_frame(2)

driver.find_element_by_id("p").send_keys("123456789")

driver.find_element_by_id("login_button").click()

driver.switch_to_default_content()

time.sleep(5)

driver.quit()

8、处理弹窗

使用switch_to_alert()中的accept()、dismiss()、send_keys、text进行操作,弹窗一般有三种类型,①.只有确认按钮的;②.有确认/取消按钮的;③.需要输入文字的。

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://www..com")

driver.implicitly_wait(10)

#创建一个测试弹窗

driver.execute_script("window.alert('这是一个测试弹窗')")

time.sleep(2)

#1.弹窗中只有确认按钮的

driver.switch_to_alert().accept()

time.sleep(1)

#2.弹窗中有确认/取消按钮的

driver.execute_script("window.alert('这是一个测试弹窗')")

time.sleep(3)

#点击取消

driver.switch_to_alert().dismiss()

time.sleep(1)

#弹窗中需要输入文字的

# driver.switch_to_alert().send_keys("测试测试测试")

#获取弹窗中的内容

driver.execute_script("window.alert('这是一个测试弹窗')")

res = driver.switch_to_alert().text

print(res)

Ⅵ 用钉钉扫码登录的web程序怎么实现自动化测试

1.建立服务器
我们可以在数据库中建一个qrlogin的表来保存key,比如我们建这样的一个表

其中qrl_guid就是登录的key,登录后的标识flag就是qrl_dingDingUserId(钉钉用户的ID)。
2.生成二维码
二维码的生成可以使用相关的库,比如.net的可以用thoughtworks.qrcode.dll,生成的字符串是htttp://www.xxx.com/qrlogin.html?key=生成的GUID,代码如下

[csharp] view plain
string enCodeString = "http://www.xxx.com/qrlogin.html?key=" + key;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
Bitmap qrBmp = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
其中key需要先将其插入到数据库表TQRLogin中。

3.qrlogin.html页面
在使用钉钉扫一扫进入到qrlogin.html页面后,我们不只需要得到url中的key,还需要得到该用户的信息,为此需要jsapi的票据,然后配置要调用的jsapi,比如dd.runtime.permission.requestAuthCode,再通过该函数得到用户的信息,示例代码如下

[javascript] view plain

Ⅶ web自动化测试需要学习哪些技术

需要学习html,JS前端技术,了解web元素。
一个脚本语言或编程语言,以做自动化脚本开发调试。
一个自动化工具,如qtp或selenium,从工具入手开始做web自动化。

Ⅷ 如何搭建webdriver+selenium+nodejs自动化测试框架

1
安装nodejs程序包

2
打开nodejs
从开始程序中选择Node.js--->Node.js command prompt

3
在命令窗口输入以下命令
一、npm install webdreverio -g
二、npm install selenium-standalone@latest -g

4
安装selenium服务,在命令窗口输入以及下命令
selenium-standalone install
此时会报错,告诉你IE和谷歌驱动安排不成功
解决方法:新此目录下的C:\Users\saber\AppData\Roaming\npm\node_moles\selenium-standalone\.selenium的chromedriver和iedriver文件夹替换掉

5
配置环境变量
编辑用户变量:
变量名:PATH
变量值:C:\Users\saber\AppData\Roaming\npm
新建系统变量:
变量名:node_path
变量值:C:\Users\saber\AppData\Roaming\npm\node_moles

6
开启selenium服务,在命令窗口输入以下命令
selenium-standalone start

7
打开cmd窗口,输入脚本的位置

8
运行自动化测试脚本

至此,webdriver+selenium+nodejs的自动化框架就搭建完成,大家尽情编写js脚本吧。