

WebDriverを使用し、ログイン画面にてログイン後、  
そのブラウザのページで別のページに遷移したいのですが、遷移しなく困っております。

以下ソース

[code]

    ログイン関数
        static void login(IWebDriver _webDriver){
                _webDriver.Url = "url1";     //
                IWebElement loginID = _webDriver.FindElement(By.Name("login_id"));
                IWebElement password = _webDriver.FindElement(By.Name("password"));
                IWebElement submit = _webDriver.FindElement(By.ClassName("classname"));
                loginID.SendKeys("loginID");
                password.SendKeys("password");
                submit.SendKeys(Keys.Return);
            }
    
[/code]

上記処理後に  
以下の関数を呼び出します。

[code]

    ページ遷移関数
        static void nextPage(IWebDriver _webDriver){
                string url = "url2";
                _webDriver.Url = url;
                //_webDriver.Navigate().GoToUrl(url);
            }
    
[/code]

以下main関数の処理となります。

[code]

    mainの処理
    　　static void Main(string[] args)
            {     
                IWebDriver ie = new InternetExplorerDriver();
                login(ie);
                nextPage(ie);
            }
    
[/code]

ページ遷移関数は処理は通り、エラーもでないのですが  
遷移しない状況となっております。

IWebDriver ie = new InternetExplorerDriver();  
をそれぞれの関数の中で宣言してみたらどちらもページは  
開くのですが、ページが別れて開かれてしまい、url2はログインしないと  
開けないページなのでログインしてくださいとでてしまいます。

どなかたご存知の方いらっしゃいましたら  
回答お待ちしております。  
よろしくお願い致します。


CC BY-SA 3.0
2017-04-28T07:18:56.987
34347
2017-05-13T04:20:16.027
2017-04-29T00:51:59.940
22846
22846
question
c# internet-explorer selenium selenium-webdriver
selenium webdriverでのページ遷移

[code]

    IWebElement submit = _webDriver.FindElement(By.ClassName("classname"));
    
[/code]

これはsubmitボタンでしょうか？

[code]

    submit.Click();
    
[/code]

では動かないですか？


CC BY-SA 3.0
2017-05-06T13:53:38.313
34489
2017-05-06T13:53:38.313
13695
34347
answer


login() 単体では動いてるんですか？

※ 既にコメントがついていますが、僕も「ボタンはクリックするべき」だと思います。

login() 単体で動作している（ように見えている）と仮定して、「（サーバサイド及びブラウザの）ログイン処理の完了」の待ち合わせが不足と思います。

認証情報を submit した後に「ログインの完了」を確認してから、login() を抜けるべきです。


CC BY-SA 3.0
2017-05-13T04:20:16.027
34676
2017-05-13T04:20:16.027
3033
34347
answer