小编swi*_*201的帖子

如何获得testCafe退出代码

我在通过黄瓜运行Testcafe时遇到问题。无论出于何种原因,当我通过黄瓜运行testCafe时,即使测试失败,该过程也始终会以退出代码0退出。

如果我通过黄瓜来操纵木偶戏,我不会遇到这个问题。我认为这种行为是由于我在我的钩子文件中设置了东西的方式造成的,在该文件中我没有正确解释测试咖啡馆出口代码。

在我的hooks文件中,我将在我的Before钩子中创建一个testCafe运行器,然后在我的after钩子中将其关闭。

我想知道我可以使用什么命令来获取TestCafe退出代码,而我却找不到任何信息。

例如,退出代码是从close函数返回的还是什么?

testing automated-tests exit-code e2e-testing testcafe

3
推荐指数
1
解决办法
184
查看次数

Geb在空的导航器上使用导航器方法

我对位于此处http://www.gebish.org/manual/current/api/geb/navigator/Navigator.html的导航器API所用的语言感到有些困惑

特别是,我对.isDisplayed方法感到困惑。

方法文档指出:“如果显示唯一的上下文元素,则返回true;如果是空的导航器,则返回false。不能在多元素导航器上调用。”

问题是,如果我在空的导航器上调用.isDisplayed(),则不会返回false。而是抛出此错误:

table: geb.navigator.EmptyNavigator' is not present
Run Code Online (Sandbox Code Playgroud)

它失败的行看起来像这样:

at SomePage //This page has a module element called "module"
if(module.table.isDiplayed()){ // module has a navigtor element called table
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

问题中的表元素确实不存在,因此该表元素确实是一个空的导航器,但是根据文档,这意味着当我调用.isDisplayed()时,它应该返回false,但是会抛出上述错误

再次调用诸如.isEmpty()之类的类似导航器方法时,情况相同,如果在页面上未找到该元素,我希望从空元素中调用.isEmpty()时返回true,但它抛出EmptyNavigator异常。

是什么赋予了?

jquery geb

2
推荐指数
1
解决办法
2375
查看次数

如何使特征方法成为有条件的

在我的测试中,我有一些只需要在某些情况下运行的功能方法。我的代码看起来像这样:

class MyTest extends GebReportingSpec{

    def "Feature method 1"(){
        when:
        blah()
        then:
        doSomeStuff()
    }

    def "Feature method 2"(){
        if(someCondition){
            when:
            blah()
            then:
            doSomeMoreStuff()
        }
    }

    def "Feature method 3"(){
        when:
        blah()
        then:
        doTheFinalStuff()
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该注意,我使用的是自定义 spock 扩展,即使以前的功能方法失败,它也允许我运行规范的所有功能方法。

我刚刚意识到的事情以及我发表这篇文章的原因是因为“功能方法 2”由于某种原因没有出现在我的测试结果中,但方法 1 和 3 却出现了。即使someCondition设置为true,它也不会出现在构建结果中。所以我想知道为什么会这样,以及如何使这个功能方法成为有条件的

spock geb

2
推荐指数
1
解决办法
605
查看次数

python递归方法返回None

我正在使用sikuli(一种Jython语言,尽管它主要是python)来横向查找特定元素的xml树.

如果我写这样的代码:

xmldoc = ('/ProgramData/XXXXX/XXXXX/XXXX/file.xml')
tree = ET.parse(xmldoc)
root = tree.getroot()
transverse(root)

def transverse(Root):
    for x in Root:
        if(x.tag=='ecuID'):
            if (x.get('id')=='16'):
                print x.get('corner')
        else:
            transverse(x)
Run Code Online (Sandbox Code Playgroud)

控制台打印(5,105)(这是x.get('corner')的值)

如果代码是这样的

xmldoc = ('/ProgramData/XXXXX/XXXXX/XXXX/file.xml')
tree = ET.parse(xmldoc)
root = tree.getroot()
print transverse(root)

def transverse(Root):
    for x in Root:
        if(x.tag=='ecuID'):
            if (x.get('id')=='16'):
                return x.get('corner')
        else:
           return transverse(x)
Run Code Online (Sandbox Code Playgroud)

日志打印出无.我觉得它应该表现相同的方式,我实际上需要它以第二种方式工作.

我认为代码在第一次到达else语句时返回,而不是等待结果被过滤回到顶部,如果你理解我的意思.

任何关于为什么这些代码段行为不同的帮助都会受到极大的关注

python jython sikuli

1
推荐指数
1
解决办法
162
查看次数

使用Selenium IDE如何导航到URL

我是selenium的新手,所以我一直在使用IDE来创建测试.我有这个问题,Selenium看到一个与下拉菜单关联的按钮,但它不会单击该按钮.为了解决这个问题,我希望Selenium在火狐的地址栏中键入URL(我想点击的按钮),或者我希望selenium只是通过一些命令转到所说的URL,但我找不到所说的命令,我无法让Selenium点击并输入地址栏.

selenium automation selenium-ide

1
推荐指数
1
解决办法
8950
查看次数