2016-05-03 25 views
0

我是新来的硒,我试图自动在谷歌浏览器上的Facebook注册。我已经设置了eclipse & Chrome驱动程序并创建了所有的jar文件。现在我复制的XPath通过检查元素选项在Facebook页面的文本框,并粘贴元素中的XPath如下:driver.findby令牌上的语法错误Xpath

driver.findElement(By.xpath("//*[@id="email"]]")).sendkeys("user1"); 

但我正在逐渐在这两个错误。 1是分配的左侧必须是可变的。 2.是令牌“email”上的语法错误。

我也尝试下面的语法:

WebElement el = driver.findElement(By.xpath("//[@id="email"]")).sendkeys("user1"); 

但那不是工作压力太大。请让我知道我在这里错过了什么。

回答

2

它应该是"//*[@id='email']"围绕“电子邮件”单引号。这也应该是sendKeys资本 'K'

driver.findElement(By.xpath("//*[@id='email']")).sendKeys("user1"); 
+0

谢谢..我所做的更改。 WebElement el = driver.findElement(By.xpath(“// [@ id ='email']”))。sendKeys(“user1”);没有工作。它抛出了一个错误“类型不匹配,无法从void转换为WebElement”,所以我写道,WebElement el = driver.findElement(By.xpath(“// [@ id ='email']”)); \t \t el.sendKeys(“TestUser”); 但是这没有找到正确的文本框并输入它。为什么你认为? –

+1

这是无效的XPath。也许你的意思是:'// * [@ id ='email']' – har07

+0

@ har07我没有注意到,谢谢。 – Guy

0

尝试通过使用此cssSelector:

Thread.sleep(5000);   
driver.findElement(By.cssSelector("input.inputtext#email")).sendKeys("abc"); 
+0

谢谢..这工作!但为什么我不能使用xpath和自动化?它必须是cssSelector吗? –

+0

有很多替代元素。如果xpath不起作用,你可以使用cssSelector,或者你可以使用id或者u可以使用classname,或者你可以使用name和更多。所以,如果你坚持一个人,尝试与其他人。你不必使用xpath。有时它并没有给你确切的元素。 – noor

+0

雅有你的观点..但是我们怎么知道,哪个是最好的定位器?它是否必须是试错法,或者我们对此有任何诀窍?我的意思是有没有一种技术可以使用正确的定位器或其与练习一起使用的东西? –

相关问题