selenium - 没有发生右键单击,并且在同一选项卡上单击了元素
问题描述
我有一个 Selenium 脚本来执行以下步骤:
- 启动网站 - https://vusevapor.com/
- 点击“我 21 岁以上”按钮
- 移动到元素设备。
- 右键单击 ciro 完整套件。
问题是右键单击菜单保持原样,并且元素在同一页面上被单击。
这是我的代码:
//website
driver.get("https://vusevapor.com/");
//clicking on i am 21+ button
driver.findElement(By.xpath("/html/body/aside/div[2]/div/div/div[2]/div/a[1]/span")).click();
Thread.sleep(5000);
//xpath of devices menu
WebElement devices = driver.findElement(By.xpath("//*[@id=\"store.menu\"]/nav/ul/li[2]/a/span"));
//move to element devices
Actions act = new Actions(driver);
act.moveToElement(devices).build().perform();
Thread.sleep(3000);
//xpath of ciro complete kit
WebElement ciroKit = driver.findElement(By.xpath("//*[@id=\"store.menu\"]/nav/ul/li[2]/ul/li[2]/ul/li[1]/a/span"));
//right click on ciro complete kit
//*****Issue********right click is happening but the element is getting clicked on the same tab and right click menu remains as is
act.contextClick(ciroKit).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();
解决方案
试试这个:选项1:
act.contextClick(ciroKit).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build().perform();
选项 2- 使用动作和机器人类:
act.contextClick(ciroKit).build().perform();
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_ENTER);
希望这可以帮助。
推荐阅读
- vb6 - 如何在 VB6 中声明 OCX 控件但不包含在表单中
- epson - 在爱普生热敏打印机上打印条码
- erlang - Erlang - 根据扩展前的后缀编号对文件列表进行排序
- ghc - 为什么夜间使用堆栈构建时 GHC 版本不符合预期?
- http - Swagger 无法识别 x-www-urleconded 参数
- c# - LibGit2Sharp CheckoutConflictException 和 Stash
- android - 使用 Samsung S5 Mini 启动时未找到 cordova.js
- android - 如何使用 kivy 更改标签的位置
- compiler-errors - Cuda 向量类型的推力支持
- c++ - C++:任意函数作为函数的参数