2017-06-12 29 views
0

上記の関連トピックをすべて確認しましたが、エラーは発生しませんでしたが、要素が見つかりませんでした。私はその後のようにケースを要約します。ポップアップの選択方法とログインキーの入力方法 - Selenium Webdriver Java

CaseFunctions.elementClicker( "/ html/body/header/div/div [2]/div/div/a [2]"); //要素がクリックされ、ポップアップが開かれました。

このボタンをクリックすると、[サインイン]ポップアップが表示されます。 最初に私は電子メールフィールドにキーを送り、メインページ(同じポップアップ)の登録フィールドを送信します。メインページにも同じIDの別のメールフィールドがあるからです。

キーが間違ったフィールドに送信されたため、ウィンドウを切り替えることができなかったことがわかります。 (ポップアップのものではなく、メインページのものにではなく)

何とか私が何をしたとしても、そのポップアップをキャッチしてフィールドにキーを送ることができませんでした。

注:ポップアップヘッダーは異なるIDを持ち、ポップアップ自体は異なるIDを持ち、メインページ&のポップアップには同じIDを持つ「電子メール」フィールドがあります。

+0

私にウェブサイトの詳細を教えてもらえますか? –

+0

どのような詳細をお持ちですか? – HellYeah2511

+0

私にURLを教えてもらえますか? –

答えて

0

ここで問題は、ホーム画面の要素も同じxpathを持つため、ポップアップ内の要素の正しいxpathを特定することにあります。私は以下のコードをチェックして、それは正常に動作します。

public static void main(String[] args) 
    { 
    System.setProperty("webdriver.chrome.driver", "F:\\Softwares\\Selenium\\Webdriver\\chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 
    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 

    driver.get("https://supercareer.com/"); 

    //Click on Login Button 
    driver.findElement(By.xpath("//a[contains(text(),'Log In')]")).click(); 
    //Enter email id 
    driver.findElement(By.xpath("//div[@id='dialog_loginemployee']//div[4]/input")).sendKeys("Hello"); 
    //Enter password 
    driver.findElement(By.xpath("//div[@id='dialog_loginemployee']//div[5]/input")).sendKeys("done"); 
    } 

希望します。ありがとう

+0

ありがとうございました。出来た。私は実際に関連する1つの質問と、そのページに関する別の問題も持っています。 – HellYeah2511

+0

1)Xpath's for Email&Passwordフィールドはどのようにわかりましたか? (申し訳ありませんが、私は初心者です、私はfirebug経由でポップアップで電子メールとパスワードフィールドのxpathsを選択できませんでした) – HellYeah2511

+0

2)私はページの下部にあるLinkedInボタン経由で接続をクリックすることができません。 Get要素はクリック可能な警告ではありません。 – HellYeah2511

0

ポップアップとは、ポップアップが実際のブラウザのウィンドウポップアップということですか?ここで

は、私は、ウィンドウのタイトルを使用して、ブラウザウィンドウに切り替えるために使用されるコードです:

public static void switchToWindow(String expectedTitle) throws Exception { 
    Set<String> handles = driver.getWindowHandles(); 
    System.out.println("Number of windows found: " + handles.size()); 
    for (String handle : handles) { 
     System.out.println("Working on window with handle: " + handle); 
     driver.switchTo().window(handle); 
     System.out.println("Switched to window with handle: " + handle); 
     String currentWindowTitle = driver.getTitle().trim(); 
     System.out.println("Current window page title: " + currentWindowTitle); 
     if(currentWindowTitle.toLowerCase().contains(expectedTitle.toLowerCase())){ 
      System.out.println("Window found (" + expectedTitle + ")"); 
      break; 
     } 
     else{ 
      System.out.println("-- This is not the window with title we are looking for"); 
     } 
    } 
} 

あなたがフィールドに値を送信する前に、ポップアップウィンドウに切り替えることを確認してください。お役に立てれば。

ちなみに、質問するときにコードを入力すると非常に便利です。

+0

CLick LogInボタンの後に、ウィンドウを識別するためにウィンドウハンドル関数を使用しました。それが出力された、窓の 数が見つかりました:1 は、ハンドルとウィンドウ上の作業:{} 82414cb2-38d5-4b74-8226-250c034d4d95 は、ハンドルとウィンドウに切り替え:{} 82414cb2-38d5-4b74-8226-250c034d4d95 現在ウィンドウページのタイトル: "SOMETITLE" - - これは私たちが探しているタイトルのウィンドウではありません – HellYeah2511

+0

同じハンドルです。基本的に1つのウィンドウしかありません。 – HellYeah2511

+0

私のpopUpsはブラウザポップアップではない内部ポップアップでしたが、私はあなたの関数を使ってLinkedInログインポップアップを処理してくれました。助けてくれてありがとう。 – HellYeah2511

関連する問題