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


XPath context in Selenium-RC (PHPUnit extensions)?

在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_locator

如果您正在讨论PHPUnit Selenium扩展的使用,那么您只能使用Selenium 1旧的API。这个API仍然在Selenium2/Webdriver中工作,只是为了向后兼容。

因此,由于您被迫使用旧的API(Selenium1),因此答案是否定的。您无法设置元素的上下文来简化XPATH定位器。