2016-08-26 11 views
1

私は以下を使用してSeleniumのメニューをナビゲートしています。それは完全にChromeで動作しますが、IEではターゲットの下のメニューをクリックするとサブメニュー項目が完全にアクセスできなくなります。SeleniumはmoveToElement経由でIEで適切なターゲットをクリックしません。Chromeで動作します

// Actions not supported by FireFox's Marionette Driver, use chrome or ie. 
Actions actions = new Actions(driver); 
WebElement menuHoverLink = driver.findElement(By.id("m7f8f3e49_ns_menu_INVENTOR_MODULE_a_tnode")); 
System.out.println("Found the inventory text"); 
actions.moveToElement(menuHoverLink); 

WebElement subLink = driver.findElement(By.id("m7f8f3e49_ns_menu_INVENTOR_MODULE_sub_changeapp_INVENTOR_a")); 
actions.moveToElement(subLink); 
actions.click(); 
actions.perform(); 

そして、ここでドライブは、私は私のテストを続行するには、適切なメニュー項目をクリックできるようにしたいと思い

System.setProperty("webdriver.ie.driver", "C:\\Selenium\\IEDriverServer64.exe"); 
driver = new InternetExplorerDriver(); 
driver.manage().window().maximize(); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

を初期化されているところです。

+0

あなたが探している属性IDはIEでも同じですか? –

答えて

0

私はオフセットからカーソルを移動させることによって解決策を得ることができました。これが画面全体でどれくらいうまく動作するかはわかりません。

Actions actions = new Actions(driver); 
    WebElement menuHoverLink = driver.findElement(By.linkText(arg1)); 

    //<span id="m7f8f3e49_ns_menu_INVENTOR_MODULE_a_tnode">Inventory</span> 
    System.out.println("Found the inventory text"); 
    actions.moveToElement(menuHoverLink); 
    actions.moveByOffset(100, 10); 

    Thread.sleep(1000); 
    //actions.moveByOffset(45, 0); 
    WebElement subLink = driver.findElement(By. 
      id("m7f8f3e49_ns_menu_INVENTOR_MODULE_sub_changeapp_SRVITEM_a_tnode")); 
    actions.moveToElement(subLink, 100, 12) 
    .click().perform(); 
関連する問題