0

我需要使用 selenium 中的简单 sendkeys 函数在 textarea 中写入。这个 textarea(ID = 'txtSkillsTaught-Value')后跟一个脚本标签,我猜想我无法在其中隐藏 textarea 的可见性,因为我无法编写文本。

尝试了简单 driver.findelment(By.Id("txtSkillsTaught-Value")).sendkeys("text"); 甚至尝试切换到上面的 iframe 但没有工作附加 HTML 代码的图像

谢谢,艾米在此处输入图像描述

4

2 回答 2

1

一方面,如果它不可见,将文本放入其中可能不是一个好主意......但是,另一方面,我有时需要做这样的事情。我通常在我的 selenium 代码中使用 javascript 执行发送密钥之前更改此元素的可见性(我使用 java,但对于 C# 应该或多或少相同):

executeScript("$('.yui-button.yui-link-button').find(\"textarea[id='txtSkillsTaught-Value']\").css({'opacity':'1', 'visibility':'visible', 'display':'block', 'position':'relative', 'transform':'none'})");
driver.findelment(By.Id("txtSkillsTaught-Value")).sendkeys("text");

那应该行得通。

于 2018-07-19T11:18:20.540 回答
0

根据您提供的HTML<textarea> ,它不在<iframe>但具有属性 style="display: none;" . 因此,要将字符序列发送到<textarea>您可以使用以下解决方案:

IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td[@class='t-editable-area']//textarea[@class='t-content t-raw-content' and @id='txtSkillsTaught-value']")));
((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].removeAttribute('style')", element);
element.SendKeys("Amey");
于 2018-07-19T15:08:52.373 回答