我想知道WebDriver中WebElement的ID是如何在内部计算的。我需要它,因为我正在编写一个扩展,以便在需要一次执行多个JavaScript命令的情况下提高性能。如何计算WebDriver WebElement的内部ID?将多个元素传递给JavaScript Executor
示例代码在Java中以检索ID:
RemoteWebElement element = driver.findElement(
By.cssSelector("div#header > img.logo")
);
String id = element.getId();
// id is something like: {390f457d-406b-458a-b4a6-dfebb24aae36}
所以,我想不止一个WebElement传递到JavaScript的执行者,我可以通过发送所有的ID列表实现的呢? 我只需要知道这些id就可以在JavaScript中检索DOM元素。
我想解决方案是隐藏在webdriver.xpi实现中的某个地方。我使用Firefox WebDriver。
更新
好吧,让我重复我的问题。假设我想要做的事,在JavaScript中的WebElement我可以做这样的事情:
((JavascriptExecutor) driver).executeScript("jQuery(arguments[0]).doSomething()", myElement);
但我怎么能传递多个WebElements(任意金额)的脚本?
顺便说一句,我没有在我的java WebDriver实现中找到getID ... – 2012-03-01 14:19:52
它在'RemoteWebElement'中定义:http://selenium.googlecode.com/svn/trunk/docs/api/java/org/ openqa/selenium/remote/RemoteWebElement.html#getId%28% – Alp 2012-03-01 14:23:58
啊!看着'WebElement'我的坏:) – 2012-03-01 14:26:32