2017-09-28 109 views
0

我想從selenium webdriver中使用ContextClick()方法右鍵單擊元素並從上下文菜單中選擇第二個選項。這是我的示例代碼。當我執行這個右鍵單擊操作不會發生在指定的元素上,也沒有錯誤消息。 我使用硒3.4,同時嘗試Firefox和Chrome驅動程序。在selenium webdriver中使用contextclick

任何幫助,在這非常讚賞..!

driver = new FirefoxDriver(); 
driver.get("http://google.com"); 
driver.findElement(By.name("q")).sendKeys("London"); 

Actions action = new Actions(driver); 
driver.findElement(By.xpath("//input[@value='Google Search']")).click(); 
action.contextClick(driver.findElement(By.xpath("//a[text()='Sign in']"))).build().perform(); 
+0

我可以知道什麼樣的笏我 – iamsankalp89

回答

0

這個被稱爲火狐的問題和硒罐子3.2及以上

詳見本期鏈接:

https://github.com/mozilla/geckodriver/issues/233 https://github.com/SeleniumHQ/selenium/issues/3348

當我試圖拋出異常

線程「主」中的異常 org.openqa.selenium.UnsupportedCommandException:mouseMoveTo

我曾嘗試這樣的代碼:

System.setProperty("webdriver.chrome.driver","E:/software and tools/chromedriver_win32/chromedriver.exe"); 
WebDriver driver = new ChromeDriver(); 
driver.get("http://google.com"); 
driver.manage().window().maximize(); 
driver.findElement(By.name("q")).sendKeys("London"); 
driver.findElement(By.name("q")).sendKeys(Keys.ENTER); 
WebElement ele= driver.findElement(By.xpath("//a[text()='Sign in']")); 
Actions action = new Actions(driver); 
action.moveToElement(ele); 
action.contextClick(ele).build().perform(); 

而且我修改您的代碼

driver.findElement(By.xpath("//input[@value='Google Search']")).click(); 

爲這一說法拋nosuchelementexception例外,因爲它正在隱藏,請試試這個代碼對我有用

+0

謝謝@ iamsankalp89,我可以右鍵單擊該元素,但嘗試點擊上下文菜單中的選項時,它會進入。而不是從上下文菜單中選擇這個是我正在做的 action.contextClick(ele).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build()。perform ); – Yogiraj