在selenium(Java)中右键单击后,我无法单击任何元素。 它只是右键单击并没有点击任何选项,比如在新标签页中打开...而是在执行右键单击后进行正常点击。任何人都可以帮助我。我的代码是
System.setProperty( “webdriver.chrome.driver”, “C:\硒\ chromedriver.exe”); WebDriver wd = new ChromeDriver();
wd.get("http://google.com");
Thread.sleep(3000);
//Point a=wd.findElement(By.linkText("Testing")).getLocation();
WebElement b=wd.findElement(By.linkText("About"));
Actions action=new Actions(wd);
//action.contextClick(b).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).perform();
action.moveToElement(b);
Thread.sleep(4000);
//action.contextClick(b);
action.contextClick(b);
action.sendKeys(Keys.ARROW_DOWN).sendKe ys(Keys.ENTER).build().perform();
我已尝试通过上下文单击并移动到元素但没有结果。提前感谢..
答案 0 :(得分:0)
这可能是你想要的:
要从上下文菜单中选择项目,您只需使用按键向下事件移动鼠标位置,如下所示: -
Actions action= new Actions(driver);
action.contextClick(b).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build().perform();
Soure:Select an Option from the Right-Click Menu in Selenium Webdriver - Java
根据评论中的请求,添加在新标签页中打开链接的替代方法。
System.setProperty("webdriver.chrome.driver", "Drivers\\chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.get("http://www.google.com/");
WebDriverWait wait = new WebDriverWait(driver, 30);
Thread.sleep(3000);
WebElement b=driver.findElement(By.linkText("About"));
Actions action=new Actions(driver);
action.moveToElement(b).perform();
Thread.sleep(4000);
action.keyDown(Keys.CONTROL);
action.click();
action.keyDown(Keys.CONTROL).build().perform();
//action.sendKeys(Keys.RETURN).perform();
Thread.sleep(4000);
driver.quit();
使用 build()方法将所有列出的操作编译成一个步骤。我们在执行操作序列时使用build()。如果我们执行单一操作,我们可以直接使用perform()。您可以阅读有关Actions类的更多信息。
另外,重复一遍我无法在有限的时间内找到问题的根源,所以我做了一个工作。因此,我们使用快捷键CTRL + CLICK手动打开新标签中的链接,您可能需要查找所需内容的快捷方式,您可以参考:https://support.google.com/chrome/answer/157179?hl=en
希望有所帮助:)