在groovy页面中使用findElement

问题描述 投票:1回答:1

抱歉,如果这个问题看似微不足道,...但我非常非常新的groovy / selenium作为maven系统的一部分,我已被抛出,并且需要了解我在尝试使用此方法时所缺少的内容。

我得到的错误如下:

groovy.lang.MissingMethodException: No signature of method: GebConfig.findElement() is applicable for argument types: (org.openqa.selenium.By$ByName)

我需要在网页上找到元素并希望使用findElement方法,但是我的代码在groovy中作为步骤定义的一部分。经过多次尝试后我得到了以下结果,但我无处可去:

package step_definitions
import features.support.Requests

import geb.*
import org.apache.commons.io.*
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.WebElement
import org.openqa.selenium.*
import org.openqa.selenium.remote.*
import cucumber.api.groovy.EN.*

When(~/^find the element named "(.*?)"$/) { String btnName ->
WebElement myElement = driver.findElement(By.name(btnName));
}

我知道我可以使用下面的东西作为按钮,类似于其他东西,如单选按钮和输入字段:

browser.$(‘input’, name: ‘btnK’)
$(‘input’, name: ‘btnK’)

但我更愿意知道如何使用findElement方法。

任何帮助,将不胜感激。

谢谢,

吉姆·... ..

groovy geb
1个回答
1
投票

我可以看到你正在使用Geb和Cucumber JVM。如果您使用geb.binding.BindingUpdater中描述的http://gebish.org/manual/current/#writing-your-own-steps设置环境,则步骤中可用的方法和属性如http://gebish.org/manual/current/#browser-methods-and-properties中所列。你会注意到该列表中没有driver属性 - 如果你想访问驱动程序实例,那么你必须从browser获取它:

When(~/^find the element named "(.*?)"$/) { String myName ->
    WebElement myElement = browser.driver.findElement(By.name(btnName));
}
© www.soinside.com 2019 - 2024. All rights reserved.