【发布时间】:2018-08-26 12:31:59
【问题描述】:
我一直在尝试创建代码来自动登录我玩的名为 Life is Feudal 的游戏的网站以收集一些信息(一切都是合法的,我可以手动访问我想要的信息,但需要数年时间才能收集一切)。
这是我的代码:
public static void main(String[] args) throws InterruptedException {
String Url = "https://lifeisfeudal.com/";
String email = "MYEMAIL";
String password = "MYPASSWORD";
WebDriver driver = setDriver();
// Open Life is feudal home page
driver.get(Url);
/*
* Logging into my account
*/
// Click on sign in button [WORK]
driver.findElement(By.linkText("Sign In")).click();
//Focus the Iframe
driver.switchTo().frame(driver.findElement(By.id("signin")));
/*
* Type in Email
*/
//Try #1 using name (DONT WORK)
driver.findElement(By.name("email")).sendKeys(email);
//Try #2 using xpath (DONT WORK)
driver.findElement(By.xpath("//*[@id=\"react-view\"]/div/div/div/div[2]/form/div[1]/div/input")).sendKeys(email);
/*
* Type in Password
*/
//Try #1 using name (DONT WORK)
driver.findElement(By.name("password")).sendKeys(password);
//Try #2 using xpath (DONT WORK)
driver.findElement(By.xpath("//*[@id=\"react-view\"]/div/div/div/div[2]/form/div[2]/div/input")).sendKeys(password);
/*
* Click the sign in button
*/
//Try (Havent tried it yet)
driver.findElement(By.linkText("Sign in")).click();
//Bring back to default
driver.switchTo().defaultContent();
//Rest of the code
}
这是 Iframe 中的 html 代码 HTML Iframe
编辑 1:按照 Frank 的建议在切换框架后添加一个 thread.sleep(3000) 使其工作。
我认为它没有完全加载框架并且试图访问当时不存在的未完全加载的东西。
【问题讨论】: