抱歉,如果这个问题看似微不足道,...但我非常非常新的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方法。
任何帮助,将不胜感激。
谢谢,
吉姆·... ..
我可以看到你正在使用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));
}