Selenium FirefoxDriver从element返回错误的Text值

时间:2017-10-13 15:18:49

标签: selenium css-selectors selenium-chromedriver selenium-firefoxdriver

我有以下HTML结构:

<label for="corp_type_label" id="Type_label">
    <div class="ms-crm-div-NotVisible">Type</div>
    --
    <div class="ms-crm-Inline-GradientMask"></div>
</label>

当我尝试通过Chrome驱动程序按照CSS选择器By.CssSelector("#Type_label")获取标签文字时,我会按预期获得--值。

但如果我使用相同的选择器并使用FirefoxDriver,它将返回Type\r\n--

FirefoxDriver:

WebDriverManager.Driver.FindElement(By.CssSelector("#Type_label")).Text;  
"Type\r\n--"

ChromeDriver:

WebDriverManager.Driver.FindElement(By.CssSelector("#Type_label")).Text;  
"--"

我使用ChromeDriver 2.33和GeckoDriver 0.18。

为什么同一个选择器会从同一个HTML中返回不同的值?

更新:说明已更新,以简化问题的定义。

1 个答案:

答案 0 :(得分:1)

使用以下XPath我得到你的元素。你能检查下面的代码吗?

WebDriverManager.Driver.FindElement(By.xpath("//*[@id='Type_label']")).Text();