Selenium,groovy,无法执行任何 click()、sendKeys() 或类似功能
Selenium, groovy, can't perform any click(), sendKeys() or similar functions
我不确定我的代码中缺少什么。但我正在尝试 运行 一个基本的 Groovy 脚本,我在其中从页面中找到一个元素,然后单击它。
我的代码有效,以至于我添加了 .click()
或 .sendKeys()
。
需要注意的几件事是我在 ReadyAPI 上 运行ning selenium。我已按照他们帮助页面中的所有说明进行操作,以确保我在正确的文件夹中拥有正确的驱动程序。
我的代码如下:
import java.util.ArrayList;
import org.openqa.selenium.*
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.WebElement
import org.openqa.selenium.chrome.ChromeDriver
def PATH_TO_CHROMEDRIVER = context.expand( '${PATH_TO_CHROMEDRIVER}' );
System.setProperty("webdriver.chrome.driver", PATH_TO_CHROMEDRIVER);
def WebDriver driver = new ChromeDriver();
driver.get("https://www.rakuten.com/");
WebElement loginButtonId = driver.findElementsByXPath("//*[@name='email_address']");
loginButtonId.click();
driver.close();
return
我收到的错误消息如下:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '[]' with class 'java.util.ArrayList' to class 'org.openqa.selenium.WebElement' due to: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.openqa.selenium.WebElement() error at line: 12
如果有人能在这里提供帮助,我将不胜感激。
谢谢,
你的错误在这一行:
WebElement loginButtonId = driver.findElementsByXPath("//*[@name='email_address']");
findElements
你应该在需要检测元素列表时使用,
如果要获取单个元素,请使用 findElement
:
WebElement loginButtonId = driver.findElementByXPath("//*[@name='email_address']");
我不确定我的代码中缺少什么。但我正在尝试 运行 一个基本的 Groovy 脚本,我在其中从页面中找到一个元素,然后单击它。
我的代码有效,以至于我添加了 .click()
或 .sendKeys()
。
需要注意的几件事是我在 ReadyAPI 上 运行ning selenium。我已按照他们帮助页面中的所有说明进行操作,以确保我在正确的文件夹中拥有正确的驱动程序。
我的代码如下:
import java.util.ArrayList;
import org.openqa.selenium.*
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.WebElement
import org.openqa.selenium.chrome.ChromeDriver
def PATH_TO_CHROMEDRIVER = context.expand( '${PATH_TO_CHROMEDRIVER}' );
System.setProperty("webdriver.chrome.driver", PATH_TO_CHROMEDRIVER);
def WebDriver driver = new ChromeDriver();
driver.get("https://www.rakuten.com/");
WebElement loginButtonId = driver.findElementsByXPath("//*[@name='email_address']");
loginButtonId.click();
driver.close();
return
我收到的错误消息如下:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '[]' with class 'java.util.ArrayList' to class 'org.openqa.selenium.WebElement' due to: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.openqa.selenium.WebElement() error at line: 12
如果有人能在这里提供帮助,我将不胜感激。 谢谢,
你的错误在这一行:
WebElement loginButtonId = driver.findElementsByXPath("//*[@name='email_address']");
findElements
你应该在需要检测元素列表时使用,
如果要获取单个元素,请使用 findElement
:
WebElement loginButtonId = driver.findElementByXPath("//*[@name='email_address']");