C# Selenium复合类名[无法插入值]

C# Selenium复合类名[无法插入值],c#,selenium,selenium-chromedriver,C#,Selenium,Selenium Chromedriver,我目前很难在一个框架内的字段中插入一个值,我尝试过删除类名中的空格,但没有成功 class=“ng原始ng有效ng作用域ng空输入sm表单控件nc原始ng有效所需ng” 下面是更多的HTML代码 其他贷款用途 此字段将对用户隐藏。 给定提供的html,请尝试以下操作: driver.findElement(By.cssSelector("div > div > nc-editable-field > textarea")); 另外,您声明该元素位于帧中,是否确实正确切换

我目前很难在一个框架内的字段中插入一个值,我尝试过删除类名中的空格,但没有成功

class=“ng原始ng有效ng作用域ng空输入sm表单控件nc原始ng有效所需ng”


下面是更多的HTML代码


其他贷款用途
此字段将对用户隐藏。

给定提供的html,请尝试以下操作:

driver.findElement(By.cssSelector("div > div > nc-editable-field > textarea"));

另外,您声明该元素位于帧中,是否确实正确切换到该帧?

请尝试以下代码块:

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("document.getElementsByClassName('ng-pristine ng-valid ng-scope ng-empty input-sm form-control nc-pristine ng-valid-required ng-touched')[0].click()");
js.ExecuteScript("document.getElementsByClassName('ng-pristine ng-valid ng-scope ng-empty input-sm form-control nc-pristine ng-valid-required ng-touched')[0].value='Hello World'");

该textarea元素具有多个与其关联的类。e、 g.ng pristine、ng valid等。请尝试css选择器,但将这些“.”替换为空格。也就是说,您可能有多个具有相同类的文本区域。查看父母或祖父母,看看是否有更好的路径来找到该文本区域。如果您提供更多的HTML,我们可以帮助您找到。谢谢您的回答,HTML有数千行,我不知道如何将其与问题文本长度限制放在一起这是我在删除间距时收到的错误消息:OpenQA.Selenium.NoSuchElementException发生HResult=0x80131500消息=没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:“ng pristine ng valid ng scope ng empty input sm form control nc pristine ng valid required ng MOOTED”}您不需要将整个HTML放在这里,您可以在textarea附近的父节点上进行统计,这可以限制父节点内的查找范围,如果近父节点无法使查找结果唯一,您需要包含更多的父节点,该节点离textarea越远。您不需要包含页面的所有HTML。如果可以提供指向实际页面的链接,这将是理想的。否则,您可以编辑您的问题,使其包含文本区域上方的前5个级别,并删除无关元素。谢谢,我收到以下错误消息System.InvalidoOperationException Occurrent HResult=0x80131509消息=未知错误:无法读取属性y“单击”未定义的(会话信息:chrome=62.0.3202.94)(驱动程序信息:chromedriver=2.33.506120(E3E5343736286C0BC2DC9AA4915BA81D9023F),平台=Windows NT 10.0.15063 x8664)Source=WebDriverYes,这起作用了,你能解释一下你是如何拥有Css选择器的吗,这里是google chrome的完整副本:#ncScreenSectionFormBuilder>div:nth child(2)>div>div>div>div>div>nc screen section form builder>div.container-fluid>div>div>form>div>div:nth child(4)>nc表单组模板:第n个子项(1)>div>nc可编辑字段模板>div>div>nc可编辑字段>文本区域By.css选择器将允许您使用选择器路径的任何部分,因此您可以使用完整路径,但有时这太长了。仅使用选择器的部分将在大约90%的时间内工作,但是您可能会遇到具有重复se的情况选择器路径。这有意义吗?是的,这适用于每个领域,感谢学到的lotA课程,以更简单的方式查看内容。用JavaScript浪费了近2个小时。(+1)