java - Selenium 无法在 Iframe 中找到元素,即使它们可见

标签 java html selenium iframe

我一直在尝试创建代码来自动登录我玩的一款名为《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) 使其工作。

我认为它没有完全加载框架,并且正在尝试访问当时不存在的未完全加载的内容。

最佳答案

切换到 IFrame 后添加 Thread.Sleep(3000) 以确定是否是时间问题。如果是这样,请将 Thread.Sleep(3000) 替换为更强大的等待方式,例如显式等待。

关于java - Selenium 无法在 Iframe 中找到元素,即使它们可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49337708/

相关文章:

exception - Webdriver 测试脚本断言失败后不停止

javascript - 如何单击 Flash 对象

python - 如何查看当前日期并转到下一个日期

java - 如果/否则没有被正确处理? ( java )

java - 在java中使用try--catch捕获sql相关的错误(记录错误)

java - MySQL AUTO_INCREMENT 和 Hibernate 自动 ID 生成

java - Spring "hello world"示例错误 : A JNI error has occured & NoClassDefFoundError: org/springframework/beans/factory/ListableBeanFactory

javascript - 三星 S4 - 默认浏览器未加载网页

html - 如何让div图片相互对齐

html - CSS - 类似于 "already clicked"属性?