Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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# selenium web元素上的Text属性为空,即使我可以使用Visual Studio检查它_C#_Selenium - Fatal编程技术网

C# selenium web元素上的Text属性为空,即使我可以使用Visual Studio检查它

C# selenium web元素上的Text属性为空,即使我可以使用Visual Studio检查它,c#,selenium,C#,Selenium,没有张贴C#代码和标记的页面,有人知道这段代码的原因吗 var link = _driver.FindElement(By.Id(field + "Field")); var id = link.GetAttribute("id"); var text = link.Text; 考虑到这个标记 <a id="ForenameField" href="/MyUrl/MyFolder/MyId">3 errors</a> 为文本变量指定一个空字符串,但是如果我在

没有张贴C#代码和标记的页面,有人知道这段代码的原因吗

 var link = _driver.FindElement(By.Id(field + "Field"));
 var id = link.GetAttribute("id");
 var text = link.Text;
考虑到这个标记

<a id="ForenameField" href="/MyUrl/MyFolder/MyId">3 errors</a>


为文本变量指定一个空字符串,但是如果我在第二行或第三行上放置一个断点并检查链接变量,我可以根据inspector上的text属性查看元素的内部文本,它读取“3个错误”,但text的值是空字符串。它没有隐藏,如果我添加手表或使用quickview,我可以看到文本,有什么想法吗?

好的,这是我的错。使用jquery在包含问题中html的div上切换类,这意味着尽管用户看到div出现,但隐藏div的类仍然在标记中。有点像这样

<div class="hideThis showThis"><!-- my elements /--></div>

这使得Selenium没有给我一个文本值是正确的。然而,令人奇怪的是,VisualStudio调试器认为应该有一个值。Visual Studio似乎与我所看到的一致,但Selenium对于hideThis类的存在更为迂腐

我同意这样的想法,如果你看不到它,你就不能与它交互,因此从元素中查找html图是值得的,你希望有一个值,看看是否有任何类会隐藏你的元素


请随意建议我删除这个显而易见的智慧。

好吧,这是我的错。使用jquery在包含问题中html的div上切换类,这意味着尽管用户看到div出现,但隐藏div的类仍然在标记中。有点像这样

<div class="hideThis showThis"><!-- my elements /--></div>

这使得Selenium没有给我一个文本值是正确的。然而,令人奇怪的是,VisualStudio调试器认为应该有一个值。Visual Studio似乎与我所看到的一致,但Selenium对于hideThis类的存在更为迂腐

我同意这样的想法,如果你看不到它,你就不能与它交互,因此从元素中查找html图是值得的,你希望有一个值,看看是否有任何类会隐藏你的元素


请随意建议我删除这个显而易见的智慧。

我知道这是一年前发布的,但我也遇到了这个问题,遇到了这个帖子。我可以通过等待DOM加载来解决这个问题——有些元素在DOM更新之前是不可见的。因此,导航到该页面后,只需放置Thread.Sleep(6000)或其他东西,它就可以为我工作。

我知道这是一年前发布的,但我也遇到了这个问题,因此遇到了这个线程。我可以通过等待DOM加载来解决这个问题——有些元素在DOM更新之前是不可见的。因此,导航到页面后,只需放入Thread.Sleep(6000)或其他内容,它就可以为我工作。

它是什么类型的元素?就像在中一样,如果没有一些标记来支持它,我们将无能为力。@Arran,好了,希望你能提供帮助。那是什么编程语言?我会在java中使用
getText()
方法…对不起,它在C#中,有什么想法吗?它是什么类型的元素?就像在中一样,如果没有一些标记来支持它,我们将无能为力。@Arran,好了,希望你能提供帮助。那是什么编程语言?我会在java中使用
getText()
方法…很抱歉这是在C#中,有什么想法吗?嘿,Sarah,刚刚注意到这篇文章。我想当时,我有一些弹出式css的东西,这让我想看看样式。您可以使用Coypu,它是selenium的包装器,而不是执行线程睡眠,让您在一段时间内重试,而不是等待元素出现(节省时间)。谢谢你的发帖!p、 如果你喜欢Coypu的工作,你可能会发现www.noutystepbdd.org很有用。嘿,莎拉,刚刚注意到这篇文章。我想当时,我有一些弹出式css的东西,这让我想看看样式。您可以使用Coypu,它是selenium的包装器,而不是执行线程睡眠,让您在一段时间内重试,而不是等待元素出现(节省时间)。谢谢你的发帖!p、 换句话说,Text{get{if(displated)return js.dom.InnerText();else return string.Empty;}}对于要检索其文本的隐藏元素,您只需使用
GetAttribute(“innerHTML”)
。换句话说,Text{get{if(displated)return js.dom.InnerText();else返回string.Empty;}}对于要检索其文本的隐藏元素,可以使用
GetAttribute(“innerHTML”)