当前位置: 首页 > 面试题库 >

如何继续按selenium填充下一页中的数据?

仉联
2023-03-14
问题内容

我要登录Selenium。整个过程分为2页。

  • 电子邮件
  • 密码

现在我可以在第一页中输入密钥,然后我应该进入下一页(输入密码并单击提交密钥)。

但是,如果我仅在一个类中添加4个按键代码,则无法完成第二页的按键输入(密码和Submit)

我猜第一页按键输入和第二页按键输入之间缺少一些代码。

public class Selenium {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {



WebDriver driver;
System.setProperty("webdriver.gecko.driver", "C:\\Users\\Downloads\\geckodriver-v0.10.0-win64\\wires.exe");
driver =new FirefoxDriver();


driver.get("https://mail.google.com");
driver.findElement(By.id("Email")).sendKeys("yourEmailId");//first page
driver.findElement(By.id("next")).click();//first page

driver.findElement(By.id("Passwd")).sendKeys("yourPassword");//next page
driver.findElement(By.id("signIn")).click();//next page
}
driver.get("https://mail.google.com");
driver.findElement(By.id("Email")).sendKeys("yourEmailId");//first page
driver.findElement(By.id("next")).click();//first page


/* What code should I add here?  */


driver.findElement(By.id("Passwd")).sendKeys("yourPassword");//next page
driver.findElement(By.id("signIn")).click();//next page
}

问题答案:

尝试将隐式等待时间设置为大约10秒,然后再将该元素查找为:-

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElement(By.id("Passwd")).sendKeys("yourPassword");
driver.findElement(By.id("signIn")).click();

或设置一个明确的等待。显式等待是您定义的代码,用于等待特定条件发生后再继续执行代码。您的情况就是密码输入字段的可见性。

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedCondithtml" target="_blank">ions.visibilityOfElementLocated(By.id("Passwd")));
element.sendKeys("yourPassword");

//Now click on sign in button 
driver.findElement(By.id("signIn")).click();//next page

Explanation: The reason selenium can’t find the element is because the
id of the password input field is initially Passwd-hidden. After you click
on the “Next” button, Google first verifies the email address entered and then
shows the password input field (by changing the id from Passwd-hidden to
Passwd). So, when the password field is still hidden (i.e. Google is still
verifying the email id), your webdriver starts searching for the password
input field with id Passwd which is still hidden. And hence, you should wait
until it becomes visible.




 类似资料:
  • 问题内容: 我想使用连续整数填充数组。我创建了一个数组,其中包含与用户输入一样多的索引: 如何使用从1开始的连续数字填充此数组?感谢所有帮助!!! 问题答案: 从Java 8开始 该是1为增量的Javadoc 在这里。 或使用

  • 添加“下一页继续...”Jasper报表中除最后一页外的每页页脚中的文本。所以基本上,我想让用户知道报告的下一页有更多内容可以查看。我知道y东西的第x页,这也让我们知道如果有更多的页面可以看到,但我想使它更友好的用户。 > 创建了一个自定义变量,如下所示: 在页脚中创建了TextField,如下所示: 现在,当我运行总共有3页的报告时,TextField内容在每一页中显示如下文本:

  • 问题内容: 我创建了一个GUI,并在外部获取了一个数据库。我正在NetBeans中使用GUI构建器来执行此操作。有谁知道用来自数据库的值填充jComboBox的简单方法吗?当我运行项目时,没有错误,但组合框保持为空。 这是设置带有折扣名称的组合框的代码: 它位于与jComboBox对象不同的类中。此类称为模型。 这是我以称为DiscountGUIView的形式调用setDiscountNames方

  • 无法使用Selenium单击链接-WebDriver:Chrome:Win7 下面是我检查按钮时的代码: span class=“UI-Button-Text”>span class=“Button-Content”>继续 我试过以下几种方法,都行不通:

  • 问题内容: 我正在尝试为特定站点构建代理刮板,但是无法进入下一页。 这是我正在使用的代码。 如果您回答了我的问题,请向我解释一下您所使用的内容,如果可以的话,请向我解释一下,如果有关于此类代码的好的教程,请给我一些: 问题答案: 要转到 下一页, 您可以尝试以下解决方案: 代码块: 控制台输出:

  • 因此,我尝试将依赖项加载到代码中,然后得到以下结果: TypeLoadException:无法加载“类型”系统。数据SqlClient。SqlConnection“来自程序集”系统。数据,版本=2.0.0.0,区域性=中立,PublicKeyToken=b77a5c561934e089'。系统反射MonoMethodInfo。GetMethodInfo(IntPtr句柄)(at/Users/bui