在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定位器。