java - 没有元素硒的Sendkeys java
问题描述
我正在尝试编写一个简单的基于 java 的 selenium 代码,我将在其中加载页面,为用户名和密码提供所需的值。
页面加载后,用户名已经集中,但我可以在用户名或密码中输入值
Using MAC - Eclipse
抱歉,我是编码新手,因此我们将不胜感激
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
WebDriver driver = new FirefoxDriver();
driver.get("http://dc1.racbusinessclub.co.uk/login/");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
Thread.sleep(2000);
driver.findElement(By.tagName("body")).sendKeys("rac-dc");
Thread.sleep(2000);
driver.findElement(By.tagName("body")).sendKeys(Keys.TAB);
Thread.sleep(2000);
解决方案
即使该字段已经聚焦,您也必须指定您希望“发送键”到哪个元素。所以获取用户名字段的 id,然后使用 sendKeys,如下所示:
driver.findElement(By.id("userNameInputBox")).sendKeys("rac-dc");
此外,值得注意的是,在脚本中使用 Thread.sleep 是不好的做法。如果您正在等待某些东西,请检查该元素是否存在,而不是等待任意时间。
编辑:实际上,看到您上面的回复,我可以看到您正在尝试与警报弹出窗口进行交互,您可以这样做:
driver.switchTo().alert().sendKeys(yourString);
或者,您可以完全跳过它并使用 URL 中的凭据导航到该页面 - 请记住不要对这些进行硬编码:
driver.get("http://username:password@http://dc1.racbusinessclub.co.uk/");
推荐阅读
- autohotkey - 按住按钮时在其他窗口上执行某些功能的 Autohotkey 脚本
- swift - Swift:如何正确重构 UIButton
- xml - 生成 WSFed xml 元数据文件
- java - JPA 查询在可选的开始日期和结束日期之前、之后和之间进行过滤
- c# - c# 类根据上一个更新下一个值
- python - CPLEX 中 MIQP 的 Populate() 等效项
- java - 在调试器中调试 apache 梁/数据流?
- python - 你能用一个命令制作一个按钮,在 TkInter 中重新运行你的代码吗?
- node.js - 我应该使用流从 mySQL 获取大数据吗?
- excel - Excel VBA结束选择没有选择案例