Selenium RC中的XPath上下文(PHPUnit扩展)?

Selenium RC中的XPath上下文(PHPUnit扩展)?,php,xpath,selenium,Php,Xpath,Selenium,在Selenium RC版本2.0b3中使用XPath定位器时,是否有方法设置XPath上下文 我之所以这样问是因为我将页面建模为对象,并且具有显示在多个页面上的复合元素小部件,所以我希望能够在其父小部件的上下文中引用子元素 比如: class SomeWidget extends Widget { public $widget_locator; public $element_locator = '//a[text()="something"]'; public fu

在Selenium RC版本2.0b3中使用XPath定位器时,是否有方法设置XPath上下文

我之所以这样问是因为我将页面建模为对象,并且具有显示在多个页面上的复合元素小部件,所以我希望能够在其父小部件的上下文中引用子元素

比如:

class SomeWidget extends Widget {
    public $widget_locator;
    public $element_locator = '//a[text()="something"]';

    public function doSomething() {
        $context = $this->widget_locator;
        $selenium->click($element_locator, $context); //<-- can I do something like this?
    }
}

显然,这是一个精心设计的示例,但其思想是子元素的xpath对于页面的作用域可能不是唯一的,但是对于小部件的上下文肯定是唯一的。

如果$context是xpath表达式,你不能只做$context+$element\u locator吗?如果你在谈论PHPUnit Selenium扩展的用法,那么你只能使用Selenium 1旧API。该API仍在Selenium2/Webdriver中工作,只是为了向后兼容


因此,由于您被迫使用旧的API Selenium 1,答案是否定的。您无法设置元素的上下文以简化XPATHs定位器。

这当然是一个解决方案,但这意味着$element\u定位器需要始终以有效的转换开始,如/或//或$context需要以一个结束,而且似乎会有太多的边缘案例使它变得值得