Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从硒中寻找元素_C#_Html_Selenium_Selenium Webdriver - Fatal编程技术网

C# 从硒中寻找元素

C# 从硒中寻找元素,c#,html,selenium,selenium-webdriver,C#,Html,Selenium,Selenium Webdriver,我正在使用Selenium和C#来运行一些测试。我找不到一个元素存在问题。我知道它就在那里,我有html格式的。即使知道它的一切,我似乎也找不到它。当我使用nodeJS时,很容易找到它,但在C#中我就是找不到。在尝试了这么多东西之后,我想我会在这里问 使用以下命令时,我会得到OpenQA.Selenium.NoSuchElementException: IWebElement Title=driver.FindElement(By.XPath(“/*[包含(,'texthhere')]”) 我尝

我正在使用Selenium和C#来运行一些测试。我找不到一个元素存在问题。我知道它就在那里,我有html格式的。即使知道它的一切,我似乎也找不到它。当我使用nodeJS时,很容易找到它,但在C#中我就是找不到。在尝试了这么多东西之后,我想我会在这里问

使用以下命令时,我会得到OpenQA.Selenium.NoSuchElementException:

IWebElement Title=driver.FindElement(By.XPath(“/*[包含(,'texthhere')]”)

我尝试使用css路径、xpath和标记,但我发现的唯一情况是使用标记。而且它不是正确的元素


是不是我的语法有什么大问题?我已经研究了多个线程,它们使用的所有语法也都不起作用

在两次调用contains函数之间说或

//*[contains(text(), 'About us') or contains(text(), 'about us')]
或者使用translate函数使xpath不区分大小写

//*[contains(translate(text(), 'ABOUTS', 'abouts'), 'about us')]

当您使用Contain text时,请确保Contain text是唯一的,否则您将获得结果列表,并根据您的条件对其进行迭代

好吧,我想出来了。元素位于iframe中。但不仅如此,它也是由一个加载运行的函数创建的。这意味着我不得不延迟等待它加载。 以下是工作代码,以防任何人看到类似问题:

        driver.SwitchTo().Frame(driver.FindElement(By.Id("iFrame id")));  
        System.Threading.Thread.Sleep(500); 
        IWebElement Title = driver.FindElement(By.XPath("path to element"));
仅仅使用睡眠可能不是最好的,但我对这方面还很陌生,而且很有效。如果有人有一个好的替代者,我很乐意听取建议。

这听起来像是“iframe中的元素”或“需要等待异步元素”。没有HTML,很难确定。。。