当前位置: 首页 > 知识库问答 >
问题:

如何使用Selenium在C#中访问此元素?

邹晟睿
2023-03-14

我试图找到以下元素并在其中输入文本。我尝试了许多不同的方法来访问该元素,但总是得到相同的错误。我当前的代码

searchTerm = driver.FindElement(By.Id("keyword"));

生成相同的错误

找不到元素:{“method”:“id”,“selector”:“keyword”}

下面显示的元素显然具有Id“keyword”。

<input maxlength="100" size="20" value="" name="keyword" id="keyword" title="keyword" class="FORMshrt2">

我使用Firebug捕获此元素的完整XPath。

/html/body/div/span/table[3]/tbody/tr/td/table[1]/tbody/tr[2]/td/div[1]/span/form/div[3]/table[3]/tbody/tr[2]/td/table/tbody/tr[1]/td/table/tbody/tr[11]/td[2]/span/input

如何访问此元素?

共有3个答案

楚涵润
2023-03-14

使用等待语句,然后尝试下面的代码

您可以尝试以下代码,这可能对您的情况有所帮助,

Thread.Sleep(5000);

driver.FindElement(By.XPath("//input[@class='FORMshrt2']")).Click();
driver.FindElement(By.XPath("//input[@class='FORMshrt2']")).SendKeys("your text");

通过使用类名,我识别元素,首先单击它,然后传递字符串。

谢宸
2023-03-14

在您开始查找时,该元素可能尚未出现。等待元素出现在DOM中:

IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(timeOut)).Until(ExpectedConditions.ElementExists((By.Id("keyword"))));
陆星文
2023-03-14

尝试用<代码>/

<代码>

我不知道硒是否期待这个结束标签,但其他一切看起来都很好。

 类似资料:
  • 问题内容: 我敢肯定,这已经在某个地方得到了回答,因为这是一个非常基本的问题-但是,对于我的一生,我无法在网上找到答案。我觉得自己是个白痴,但是我不得不问,这是: 我正在编写一个python代码,该代码将生成域中所有页面地址的列表。这是使用selenium2完成的-当我尝试访问由selenium产生的所有链接的列表时,会发生我的问题。 这是我到目前为止的内容: 该变量不包含在页面上找到的链接- 而

  • 基本上,我想访问一个出现在打印预览弹出窗口中的按钮,这是一个阴影dom元素。我尝试了一些我在stackoverflow周围找到的解决方案,但是它们不起作用,就像我试图构建的当前代码一样,它是: 检查元素打印

  • 问题内容: 我有一个网页,其中iframe内有一个texarea。我需要从其子页面javascript读取此textarea的值。目前,通过在javascript中使用,我能够提取父页面中除iframe中的textarea之外的所有控件的值。 父页面中的框架ID和框架名称在运行时会更改,因此我们无法使用框架ID /框架名称作为参考。 问题答案: 如果您有HTML 和JavaScript 现在是对文

  • 问题内容: 我搞砸了SVG,希望能在Illustrator中创建SVG文件并使用Javascript访问元素。 这是Illustrator推出的SVG文件(它似乎也向我删除的文件的开头添加了一些垃圾) 正如您可能看到的那样,每个元素都有一个ID,我希望能够使用Javascript访问单个元素,以便我可以更改Fill属性并响应诸如click之类的事件。 HTML是基本的 我想这真的是两个问题。 与使

  • 问题内容: 如何使Selenium WebDriver滚动到特定元素以使其显示在屏幕上。我尝试了很多不同的选择,但是没有运气。这在c#绑定中不起作用吗? 我可以使它跳到特定的位置, 但是我希望能够将其发送到不同的元素,而不必每次都给出确切的位置。 例1) 例2) 当我观看它时,它不会将页面跳到该元素,并且异常与不在屏幕上的元素匹配。 更新:我添加了bool ex = Example.Exists(

  • 我是自动化的新手。我正在尝试自动化一个网页,有一个文本字段,我必须在其中输入一些文本,我尝试了driver.findElement(by.xpath(“ElemNT的XPath”).sendkeys(“value”);但这不起作用,所以我尝试通过Javascript driver.executeJavaScript(“arguments[0].value='100';”,“element path