由Selenium/WebDriver驱动IE的XPath解释

Ben*_*wee 5 selenium xpath webdriver

我正在尝试使用Selenium RC和WebDriver(单独)来操作HTML页面.源包含以下内容:

<a href="/logoff"><span>
    <span>L</span>
    ogoff
    </span>
</a>
Run Code Online (Sandbox Code Playgroud)

我希望将包含文本"Logoff"的链接作为目标,即使它们重做跨度,它仍然可以工作.我正在使用XPath,因为它应该在WebDriver和Selenium RC中都有效.这适用于IE,但有点脆弱:

//a[contains(., 'ogoff')]
Run Code Online (Sandbox Code Playgroud)

这会更强大但不起作用:

//a[.='Logoff']
Run Code Online (Sandbox Code Playgroud)

你能解释为什么第二个不起作用吗?特别是,应该如何.解释为字符串,Selenium和WebDriver如何做到这一点?

我也试图让Selenium与Firefox一起工作,这样就会打开另一个蠕虫病毒.

Mad*_*sen 10

有一个空格(空格和回车),处理器看到它们是重要的并影响计算值a.

当你选择a像这样*<xsl:value-of select="a"/>*的值时,结果是:

* L
    ogoff
     *
Run Code Online (Sandbox Code Playgroud)

如果使用*<xsl:value-of select="normalize-space(a)"/>*结果是:

*L ogoff*
Run Code Online (Sandbox Code Playgroud)

如果您希望能够选择"注销",则可以使用normalize-space()然后将其包装translate()以删除空格:

//a[translate(normalize-space(), ' ','')='Logoff']
Run Code Online (Sandbox Code Playgroud)