来自Selenium 2 / WebDriver的Id的jQuery元素选择器

时间:2011-04-10 19:31:00

标签: java jquery firefox webdriver selenium-webdriver

我可以在Selenium中使用((RemoteWebElement) webElement).getId()获取元素的ID,它会返回如下字符串:

{e9b6a1cc-bb6f-4740-b9cb-b83c1569d96d}

我想知道该ID的来源。我使用的是FirefoxDriver(),这个Firefox可能与之相关吗?

有没有办法只通过知道这个ID来选择带有Jquery的元素?

2 个答案:

答案 0 :(得分:8)

您根本不需要访问内部ID。只需将WebElement实例传递给JavascriptExecutor.executeScript:

import org.openqa.selenium.JavascriptExecutor;

((JavascriptExecutor) driver).executeScript("$(arguments[0]).whatever()", myElement)

答案 1 :(得分:2)

这个字母和数字的大量ID是浏览器DOM中与您的WebElement对象相对应的节点的内部标识符。

要获取属性“id”的值,必须使用getAttribute方法:

String id = myElement.getAttribute("id");

要通过'id'属性选择元素,您必须使用findElement方法,如下所示:

WebElement myElement = driver.findElement(By.id("my_element_id"));

如果你想使用jQuery选择器,你必须使用如下的findElement方法(假设你知道它是'div'元素):

WebElement myElement = driver.findElement(By.cssSelector("div#my_element_id"));