1

我在 chrome 中定位元素时遇到问题。元素的 XPath 看起来是这样的:

//*[@id="signin"] (right click on the element and copy xpath)

相同的CSS:

$$("div[id='signin']")

现在,当我手动将鼠标悬停在它们上时,我可以在 chrome 中找到元素。但是当我尝试实现与代码相同的代码时,它会抛出错误。

driver.findElement(By.cssSelector("$$("div[id='signin']")).click(); - CSS
driver.findElement(By.xpath("//*[@id="signin"]")).click(); - XPATH

它抛出remove argument to match 'xpath(String)' 帮助!

代码 :

public static WebDriver driver;


@BeforeClass
public static void start()
{
    File file = new File("D:/new/chromedriver.exe");
    System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
    driver = new ChromeDriver();
    driver.get("http://abcd.com");
}


@AfterClass
public static void close()
{
    driver.close();
}


@Test
public static void test()

    {
    driver.findElement(By.name("UserId")).sendKeys("100");
    driver.findElement(By.name("Password")).sendKeys("100");
    driver.findElement(By.xpath("//*[@id='signin']")).click();


    }

}

@注意:这里的 URL 是虚拟的。实时使用正确的 URL。它抛出以下错误

失败:测试 org.openqa.selenium.NoSuchElementException:找不到元素(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:89 毫秒有关此错误的文档,请访问:http://seleniumhq .org/exceptions/no_such_element.html 构建信息:版本:'2.32.0',修订:'6c40c18',时间:'2013-04-09 17:23:22' 系统信息:os.name:'Windows 7' , os.arch: 'x86', os.version: '6.1', java.version: '1.7.0'

4

3 回答 3

2

尝试signin用单引号而不是双引号括起来,如下所示。

driver.findElement(By.xpath("//*[@id='signin']")).click(); - XPATH
于 2013-05-03T07:21:50.927 回答
0

从您提到的 CSS 看来,您试图找出它是 div 元素。以下应该可以无缝地工作。

driver.findElement(By.xpath("//div[@id='signin']")).click();

于 2013-05-30T18:51:54.890 回答
0

driver.findElement(By.cssSelector("div#signin")).click(); - CSS

driver.findElement(By.xpath("//*[@id='signin']")).click(); - Xpath

driver.findElement(By.id("signin")).click(); - ID

于 2013-05-31T08:21:14.473 回答