是的
http://cuketest.com/zh-cn/execution/cli.html 参考说明文档,用命令行模式执行跟 Jenkins 集成
feature 文件中是不能设置全局变量,feature 文件中的变量你可以在描述中用引号 印起来,这个只对当前 step 有用。
如果要设置全局变量的话,可以将变量单独写一个 js 文件中,在实现操作的使用导入这个 js 文件引用。
支持的 node.js 和 cucumber 都是开源的,
https://github.com/cucumber/cucumber-js
请问还需要开源哪部分?我们可以考虑
嗯,行为驱动测试的理念是为了减少大家的沟通成本,提高团队的协作能力。
不好意思,我代码复制的格式有问题,
不是
var adb = require('adbkit')var client = adb.createClient()
应该是
var adb = require('adbkit');
var client = adb.createClient();
不是的, BDD 主要是从外部系统行为来检测软件功能的正确性。 单元测试框架主要是从内部检测函数正确性。
这个不算广告,从外文翻译来的。 Why Automation Testing is Necessary http://techtowntraining.com/resources/blog/why-automation-testing-necessary
谢谢指正,已更改,我想说是一款专业的代码编辑工具。
直接用 appium 也可以,我这样做的话,主要把测试用例与自动化代码结合起来,对于刚入门的小伙伴,可以快速上手,另外,不用去定义大量的基础代码。也可以直接用到公司项目中,后期维护起来也很方便。
不需要 root
关于 node.js 的简单介绍,做了一个视频,可以参考 http://www.iqiyi.com/w_19rw28l6np.html
如果有讲的不周的地方,望指点
可以的。 参考我上面的代码可以打开微信浏览器。
结贴。 删贴。
学学学, 不仅要学,还要学会,不仅要学会,学会还要再分享。 :)
请问大佬,您说的高是哪方面的高呀? 是学编程语言的成本高吗? 说到编程语言,想请问下学 JavaScript,Python,Java,哪个更快一些 ?
可以参考 StackOverflow,提问题是先搜索一下。
还有一个问题,同样我使用 python 来实现的过程中遇到如下问题 [Chromedriver] Chromedriver exited unexpectedly with code null, signal SIGTERM
看讨论里面说通过降级 chromedriver 可以实现,我降到 chromedriver 2.20 版本依然还是这个问题, 下面是我的代码,代码应该没毛病吧。
[Chromedriver] Changed state to 'stopped'
from appium import webdriver
import selenium
import time
desired_caps = {
'platformName': 'Android',
'fastReset': False,
'deviceName': 'U10AFCPH235V8',
'appPackage': 'com.tencent.mm',
'appActivity': '.ui.LauncherUI',
'fullReset': False,
'unicodeKeyboard': False,
'resetKeyboard': False,
'noReset':True,
'androidProcess' : 'com.tencent.mm:tools'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(10)
el1 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.RelativeLayout[4]/android.widget.LinearLayout")
el1.click()
el2 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.LinearLayout/com.tencent.mm.ui.mogic.WxViewPager/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ListView/android.widget.LinearLayout[3]")
el2.click()
el3 = driver.find_element_by_xpath("//android.widget.FrameLayout[@content-desc=\"当前所在页面,我的收藏\"]/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.ListView/android.widget.LinearLayout[1]/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]")
el3.click()
# current = driver.current_context
# contexts = driver.contexts
# print("len:",len(contexts))
time.sleep(5)
print("slepp for 5 secound....")
print(driver.contexts)
driver.switch_to.context('WEBVIEW_com.tencent.mm:tools')
求助 please help me
请教一个问题,使用 node.js 来实现的时候,发现没有 selenium-webdriver 没有提供切换 webview 的相关方法,请问有使用 node.js 实现切换的吗?
我的环境如下:
node.js: v8.9.1
selenum-webdriver: 3.6.0
chromedriver: 2.34.0
appium: 1.7.1
代码如下:
let chrome = require('selenium-webdriver/chrome');
let { Builder } = require('selenium-webdriver');
let driver = new Builder().
usingServer('http://localhost:4723/wd/hub').
withCapabilities({
platformName: 'Android',
platformVersion: '6.0',
deviceName: 'U10AFCPH235V8', //魅族设备 U10
appPackage: "com.tencent.mm",
appActivity: ".ui.LauncherUI",
fastReset: false,
fullReset: false,
noReset: true,
androidProcess: 'com.tencent.mm:tools',
browserName: 'com.tencent.mm'
}).
build();
driver.sleep(10000);
driver.findElement({ xpath: "/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.RelativeLayout[4]/android.widget.LinearLayout" }).click();
driver.findElement({xpath:"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.LinearLayout/com.tencent.mm.ui.mogic.WxViewPager/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ListView/android.widget.LinearLayout[3]"}).click()
driver.findElement({xpath:"//android.widget.FrameLayout[@content-desc=\"当前所在页面,我的收藏\"]/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.ListView/android.widget.LinearLayout[1]/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]"}).click();
driver.sleep(10000)
// 不能切换,没有找到相关切换webview的方法
driver.switchTo().activeElement("WEBVIEW_com.tencent.mm:tools")