1

私はwww.google.comにナビゲートし、Internet Explorer(IE)を使用してSelenium webdriverを使用して検索ボックスに入力を送信しようとしています。Selenium Webdriver IEが要素を見つけることができません

static WebDriver webDriver = null; 
static DesiredCapabilities IEDesiredCapabilities = DesiredCapabilities.internetExplorer(); 

System.setProperty("webdriver.chrome.driver", TestConstants.chromeDriverFilePath); 
System.setProperty("webdriver.ie.driver", TestConstants.IEDriverFilePth); 

IEDesiredCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, 
      true); 
webDriver = new InternetExplorerDriver(IEDesiredCapabilities); 
//webDriver = new ChromeDriver(); 

webDriver.navigate().to("http://www.google.com"); 
webDriver.findElement(By.name("q")).sendKeys("Venkatesh Kolisetty"); 
//webDriver.findElement(By.id("lst-ib")).sendKeys("Venkatesh Kolisetty"); 

コードのこの作品は私がChromeを使用するときに非常によく動作しますが、IEを使用した場合org.openqa.selenium.NoSuchElementExceptionをスローします。

これは、セレンによって開かれたIEブラウザで必要なWebページを開きます。問題は、IEが使用されているときだけ、ページがロードされた後にセレンが要素を見つけることができないことです。クロームについては、必要な要素が見つかります。

親切にプログラム的ソリューションを提供する代わりに、手動でインターネットオプションを変更する可能性を参照してくださいIEDesiredCapabilities

に追加されるすべての機能があります。

+1

オプションです。だから、あなたはページを調べるべきです。 –

+0

検索しようとしているセクションのサンプルHTMLとその要素の検索方法を指定します。 – lloyd

+0

'www.google.com'、 'www.facebook.com' - IEで動作するWebサイトはありません – Venkatesh

答えて

0

必要な機能を追加して解決しました。

IEDesiredCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
IEDesiredCapabilities.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, "http://www.google.com"); 
IEDesiredCapabilities.internetExplorer().setCapability("ignoreProtectedModeSettings", true); 
IEDesiredCapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
IEDesiredCapabilities.setJavascriptEnabled(true); 
//IEDesiredCapabilities.setCapability("requireWindowFocus", true); 
IEDesiredCapabilities.setCapability("enablePersistentHover", false); 

IEDesiredCapabilities.setCapability("requireWindowFocus", true);そのはIE、FirefoxやChromeで開いたときにページ自体を変更することがあり

0

はいこれはIEを使用する場合によくある問題です。

ゾーンは0,1,2,3,4を含み、右側3になりますのでオープン

開きます。HKEY_CURRENT_USER \ Software \ Microsoft \ Windowsの\ CurrentVersionの\インターネットSettings \のゾーンのregedit.exeを0をクリックするとすぐに列が表示されます。名前タイプデータ

名前列に2500が表示されます。ダブルクリックします。今1,2,3,4のために同じ手順を繰り返しますが0

のためにこれをやった進

として3とベース

として値のデータを入れて...

はすべてすなわち0,1のためにこれを行います、2,3,4,5 =>すべての2500の値のデータを3に変更してください。

その後、このコードを実行してください。

public static void main(String[] args) throws InterruptedException { 

    System.setProperty("webdriver.ie.driver", "D:\\Selenium\\CP-SAT\\IEDriver\\IEDriverServer.exe"); 

    WebDriver driver = new InternetExplorerDriver(); 
    driver.get("www.google.com"); 

IEで実行されます。パスに表示されているように、IEブラウザを実行するIEDriverServer.exeが必要です。

さらなる質問がありましたら、私に返信してください。私はEclipseで上記のコードを実行し、それは正常に実行されました。

ハッピー学習:-)

+0

IEは任意のページを開くことができます。問題は、IEが使われているときだけページが開かれた後、セレニウムが要素を見つけられないことです。クロムについては、これは問題なく動作します – Venkatesh

+0

こんにちはVenkatesh、私は上記のコードからページを開き、私の行動を実行することができます。あなたは詳細を教えていただけますか? –

+0

私は1の下では「2500」を見ることができますが、0,2,3,4の下では見えません。 1の場合、16進数は3に設定されます – Venkatesh

関連する問題