Selenium/WebDriver驱动IE的XPath解释

Selenium/WebDriver驱动IE的XPath解释,xpath,selenium,webdriver,Xpath,Selenium,Webdriver,我尝试使用Selenium RC和WebDriver(分别)来操作HTML页面。源包含如下内容: <a href="/logoff"><span> <span>L</span> ogoff </span> </a> 这将更加健壮,但不起作用: //a[.='Logoff'] 你能解释一下为什么第二个不起作用吗?特别是,应该如何将解释为字符串,以及Selenium和WebDriver是如何实现的 我

我尝试使用Selenium RC和WebDriver(分别)来操作HTML页面。源包含如下内容:

<a href="/logoff"><span>
    <span>L</span>
    ogoff
    </span>
</a>
这将更加健壮,但不起作用:

//a[.='Logoff']
你能解释一下为什么第二个不起作用吗?特别是,应该如何将
解释为字符串,以及Selenium和WebDriver是如何实现的


我也在尝试让Selenium与Firefox配合使用,这样会带来另一个麻烦。

对于Selenium,您可以将其命名为
link=“Logoff”
,其中Logoff是链接中的文本。

有空格(空格和回车符)处理器认为是重要的,并影响
a
的计算值

当您像这样选择
**
值时,结果是:

* L
    ogoff
     *
*L ogoff*
如果使用
**
,结果是:

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

//a[translate(normalize-space(), ' ','')='Logoff']

是的,这是这种情况下最简单的方法。谢谢(语法为
link=Logoff
不带引号。)感谢您对空格处理的解释。也许XPath应该为
normalize-space()
translate(,“,”)
使用缩写语法,因为它们非常有用。