0

我正在使用 Webdriver 2.25.0 和 Firefox 14

我有以下文本区域:

<textarea id="source-text" placeholder="Start typing your text" style="resize: none; overflow: hidden;"></textarea>

我在我的 HomePage 对象中识别这个文本区域,如下所示:

@FindBy(how = How.CSS, using = "div.myclass textarea")
public WebElement columnLeftTextarea;

我想要做的只是使用以下代码在此文本区域内键入一些文本

homePage.columnLeftTextarea.sendKeys("some text");

这将返回以下错误:

Type mismatch Can't assign non-array value to an array

textarea 被正确定义为我运行时

 homePage.columnLeftTextarea.getAttribute("placeholder")

我得到正确的文字

我什至尝试通过将功能设置为可处理本机事件来启动浏览器:

FirefoxProfile ffProfile = new FirefoxProfile(new File(generalPropertiesTestObject.getFirefox_profile_template_location()));
        ffProfile.setEnableNativeEvents(true);
        FirefoxDriver ffd = new FirefoxDriver(ffProfile);
        capabilities = ffd.getCapabilities();

但我仍然遇到同样的错误。有人对此有任何想法吗?

4

2 回答 2

4

尝试首先关注文本区域。我使用以下代码做到了:

 driver.findElement(By.id("source-text")).clear();
 driver.findElement(By.id("source-text")).sendKeys("some text");

它似乎工作得很好。

于 2012-09-05T13:12:19.327 回答
0

您需要更改此代码:

@FindBy(how = How.CSS, using = "div.myclass textarea")
public WebElement columnLeftTextarea;

对此:

@FindBy(how = How.ID, using = "source-text") 
public WebElement columnLeftTextarea;

首先,它工作得更快,因为按 ID 搜索比按 CSS 搜索更快。其次,ID 变化的时间不如 CSS。

于 2012-09-06T08:40:04.550 回答