2016-11-29 66 views
0

enter image description here如何填充使用电子邮件部分铬司机

你能帮我的邮箱输入的文本?当我点击顶部的masuk按钮时,电子邮件框会出现,但我无法在电子邮件框中找到sendkeys

H | ERE是URL-www.tokopedia.com

这里是行不通

public static void main(String[] args) throws Exception { 
System.setProperty("webdriver.chrome.driver", "E:\\Download\\chromedriver_win32\\chromedriver.exe"); 
WebDriver driver=new ChromeDriver(); 
driver.get("https://www.tokopedia.com/"); 
Thread.sleep(3000); 
WebElement element = driver.findElement(By.id("login-ddl-link")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", element); 
driver.findElement(By.id("login-ddl-link")).click(); 
driver.switchTo().frame("iframe-accounts"); 
WebElement myEmail = driver.findElement(By.id("inputEmail")); 
myEmail.sendKeys("tes213"); 
WebElement myPassword = driver.findElement(By.id("inputPassword")); 
myPassword.sendKeys("tes123"); 
} 
+0

你是什么意思'不起作用?你的代码执行的结果是什么? – Andersson

+0

它只点击masuk按钮,但不会点击电子邮件框,并不会填充它 –

回答

0

这是因为授权表位于iframe元素中的代码。您需要先切换到该帧,然后处理输入字段:

... 
driver.findElement(By.id("login-ddl-link")).click(); 
Thread.sleep(2000); 
driver.switchTo().frame("iframe-accounts"); 
WebElement myEmail = driver.findElement(By.id("inputEmail")); 
myEmail.sendKeys("tes123"); 
... 

要切换回您可能需要使用

driver.switchTo().defaultContent(); 

附:你不需要点击输入字段发送文本,所以driver.findElement(By.id("inputEmail")).click();是多余的线

+0

嗨那里你的代码就像双击ifram帐户,所以iframe关闭立即 –

+0

你确定你不使用'驱动程序。 findElement(By.id(“login-ddl-link”))。click();'你的代码中有两次?你必须插入一行'driver.switchTo().frame(“iframe-accounts”);'到你的代码 – Andersson

+0

是的,我没有把driver.findElement(By.id(“login-ddl-link”))。点击();两次 –

0

使用此代码它在Chrome上工作得很好。

public static void main(String [] ar) throws Exception { 

     System.setProperty("webdriver.chrome.driver", "E:\\Download\\chromedriver_win32\\chromedriver.exe"); 
     WebDriver driver=new ChromeDriver(); 
     driver.get("https://www.tokopedia.com/"); 

     Thread.sleep(3000); 

     WebElement element = driver.findElement(By.xpath("//*[@id='login-ddl-link']")); 

     JavascriptExecutor executor = (JavascriptExecutor)driver;   
     executor.executeScript("arguments[0].click();", element); 

     driver.switchTo().frame("iframe-accounts"); 

     WebElement myEmail = driver.findElement(By.id("inputEmail")); 
     myEmail.sendKeys("tes213"); 

     WebElement myPassword = driver.findElement(By.id("inputPassword")); 
     myPassword.sendKeys("tes123"); 

     driver.findElement(By.xpath(".//*[@id='global_login_btn']")).click(); 
} 
相关问题