代码之家  ›  专栏  ›  技术社区  ›  Amey

如何在属性为style=“display:none;”的文本区域内发送文本通过碳和硒

  •  0
  • Amey  · 技术社区  · 6 年前

    我需要使用selenium中的简单sendkeys函数在文本区域中进行书写。 这个textarea(ID='txtSkillsTaught Value')后面是一个脚本标记,其中textarea的可见性是隐藏的,我想这是因为我无法编写文本。

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

    谢谢 艾美 enter image description here

    2 回复  |  直到 6 年前
        1
  •  1
  •   j.barrio    6 年前

    一方面,如果它是不可见的,可能不是一个好主意,把文本放在里面。。。但是,另一方面,我有时需要做这样的东西。在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");
    

    这应该行得通。

        2
  •  0
  •   undetected Selenium    6 年前

    根据 HTML 你已经提供了 <textarea> 这是不可能的 <iframe> 但是拥有 属性 style=“显示:无;” .所以要发送一个字符序列到 <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");