Selenium webdriver在部署到TFS时,返回面包屑文本(IwebElement)的string.Empty

Selenium webdriver在部署到TFS时,返回面包屑文本(IwebElement)的string.Empty,selenium,tfs,specflow,specrun,atdd,Selenium,Tfs,Specflow,Specrun,Atdd,这是我第一次在StackOverflow上发表文章,我希望我能够提供整个问题的细节。如果我需要提供任何其他信息,请务必告诉我。 发行说明: 我使用的是一个常规的面包屑,它显示我从一个页面到另一个页面的导航顺序。面包屑具有html格式的id=“divbreadcrumb” 例如:如果我从主页导航到Bookings页面Bookings,则导航如下: 主页>预订 我希望自动测试面包屑,并检查页面上显示的面包屑文本与实际的面包屑文本。我试图通过使用SeleniumWebDriver以及ATDD工具(即S

这是我第一次在StackOverflow上发表文章,我希望我能够提供整个问题的细节。如果我需要提供任何其他信息,请务必告诉我。 发行说明: 我使用的是一个常规的面包屑,它显示我从一个页面到另一个页面的导航顺序。面包屑具有html格式的id=“divbreadcrumb”

例如:如果我从主页导航到Bookings页面Bookings,则导航如下:

主页>预订

我希望自动测试面包屑,并检查页面上显示的面包屑文本与实际的面包屑文本。我试图通过使用SeleniumWebDriver以及ATDD工具(即Specflow/SpecRun和Nunit)来实现这一点,使用下面提到的代码

现在,当我尝试在本地上运行测试时,它工作正常,但是当我将代码签入TFS并构建它时,VS测试运行程序无法构建,因为它无法从IwebElement元素中找到文本,或者它将文本返回为String.Empty。现在,在本地机器上运行相同的测试时,效果非常好,给出了我的Iwebelement for breadcrumb的预期测试结果和预期值。另外,上面面包屑的HTML结构是在后端呈现的,我可以这么说,因为我试图在运行时使用webdriver的pagesource属性查看它呈现的HTML,并将其显示在异常消息中

此外,我的后端HTML代码显示为:

       <div class="breadcrumb" >
               <div class="breadcrumb-content" >
        <div class="breadcrumb" id="divBreadcrumb" >                        
        <a onclick="some code written here" href="xyz.com">Home</a>
        &nbsp;&nbsp;&gt;&nbsp;&nbsp;<a href="LMN.com">Bookings </a>                      
</div>               
     </div>   
    </div>
我得到的错误是

[ERROR]   Expected string length 18 but was 0. Strings differ at index 0.  Expected: "Home  > Bookings " 
But was:  <string.Empty>  
-----------^

当我查看HTML时,似乎文本与面包屑对象无关。您使用的find将查找,但文本似乎附加到该div的子级。 您可以使用Find方法获取正确的子级,也可以尝试div的textContent属性


本地运行和TFS运行之间的差异可能可以用IE和/或OS的不同版本来解释。

这是我在Stachoverflow上发布的第一个问题,我很高兴能够找到它在部署到TFS时出错的原因。这是因为当应用程序在TFS服务器上运行时,即使HTML是在后端生成的,但它没有显示,这可能是因为TFS以低分辨率运行应用程序,这有点难以排除故障,并且应用程序响应于隐藏面包屑

因此,即使呈现html,selenium工具也只能找到该元素,但其值将是空文本,直到该元素在前端可见为止。我们需要检查元素是否可见,然后尝试显示元素以获取其值


这解决了我上面的错误。

可能重复@Andersson-是。我想对我上面的另一个问题进行编辑,我想它会编辑我的问题,但它将其复制到了一个新问题中。我已经删除了上面的问题,因为这篇文章包含了我可以分享的关于我的问题/错误的所有信息。
[ERROR]   Expected string length 18 but was 0. Strings differ at index 0.  Expected: "Home  > Bookings " 
But was:  <string.Empty>  
-----------^