selenium - 在 Naukri 主页上选择位置时 sendKeys(Keys.ARROW_DOWN) 不起作用
问题描述
我是硒的新手。我正在尝试自动化 Naukri 主页。但是,在字段位置中, sendKeys(Keys.ARROW_DOWN) 不起作用。代码运行良好,直到 a.sendKeys("ch")。我正在使用下面的代码。请指导。
driver.findElement(By.xpath("//input[@class='sugInp']")).sendKeys("java");
Thread.sleep(2000);
List<WebElement> options = driver.findElements(By.xpath("//ul[@class='Sdrop']/li/div/strong"));
for(WebElement o:options)
{
if(o.getText().equalsIgnoreCase("developer"))
{
o.click();
System.out.println("success");
break;
}
}
Thread.sleep(5000);
Robot r = new Robot();
r.keyPress(KeyEvent.VK_TAB);
System.out.println("Tab success");
Actions a = new Actions(driver);
a.sendKeys("ch");
a.sendKeys(Keys.ARROW_DOWN);
a.sendKeys(Keys.ARROW_DOWN);
a.sendKeys(Keys.ENTER);
a.build().perform();
解决方案
我想你错过了你的元素。请试试这个。
WebElement txtUsername = driver.findElement(By.id("email"));
Actions builder = new Actions(driver);
Action seriesOfActions = builder
.moveToElement(txtUsername)
.click()
.keyDown(txtUsername, Keys.SHIFT)
.sendKeys(txtUsername, "hello")
.keyUp(txtUsername, Keys.SHIFT)
.doubleClick(txtUsername)
.contextClick()
.build();
seriesOfActions.perform() ;
推荐阅读
- javascript - “未捕获的 RangeError:超出最大调用堆栈大小”为什么会这样?
- sql - 当我需要从其他架构访问多个对象时,如何轻松安全地限制 SQL Server 中一个架构的用户?
- ios - 在 iTunes Connect - App Store 中更改版本
- python - 如何使用子进程遍历列表并运行列表中每个 IP 的 nslookup
- java - java sql查询如何选择没有参数的所有数据
- c++ - 为什么在通过指针编译时不能分配 const 初始化
- sql - SQL:在where子句中按今天日期过滤日期
- kubernetes - 具有任意数量 pod 的 Kubernetes 集群中的 Cosmos DB 更改源
- python - 打开描述符文件失败
- javascript - 如何解决无法分配给对象'#的只读属性'exports'