1

ブラウザを切り替えようとしています。つまり、ボタンをクリックすると新しいブラウザが起動し、ハンドルが見つかります..問題は、ID、xpath、名前などで検索された新しいブラウザ内のオブジェクトを見つけることができないことです。同じことについて何か提案をください。また、URLも一致させることができます。

同じ解決策を教えてください。以下はコードです。

//前の画面 Set windows = driver1.getWindowHandles();

driver1.findElement(By.id("findButton")).click();

//新しい画面のハンドルを切り替える

driver1.switchTo().window("Customer Search");
driver1.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
int i = 1;
while(i<= 10){ 
    for (String handle : driver1.getWindowHandles()) {
       String myTitle = driver1.switchTo().window(handle).getTitle();
       System.out.println("myTitle value : " +myTitle);

//顧客検索は新しいウィンドウのタイトルです

       if(myTitle.equalsIgnoreCase("Customer Search")){
           driver1.manage().window().maximize();

//ここでも一致する画面の正しい URL を渡すと、dummy("sshsj") が指定されます

           if(driver1.getCurrentUrl().equalsIgnoreCase("sshsj"));
                   {
            System.out.println("Url is matching");

//しかし、新しいウィンドウでオブジェクトを認識できません。

            driver1.findElement(By.xpath("html/body/left/form/table/tbody/tr[2]/td[1]/input")).sendKeys("kamal");
                   }
4

2 に答える 2

0

要素が iframe 内に存在する可能性があります。その場合、iframe 内の要素にアクセスする前に、その iframe に切り替える必要があります。

于 2014-11-27T16:13:53.000 に答える
0

JS を使用して新しいウィンドウを開くことができます。より高速です。

IJavaScriptExecutor jscript = driver as IJavaScriptExecutor;
jscript.ExecuteScript("window.open()");

次に、ウィンドウを切り替えるには、ウィンドウ ハンドルを使用します。

List<string> handles = driver.WindowHandles.ToList<string>();
driver.SwitchTo().Window(handles.Last());
driver.get(url);
driver.findElement(By.xpath("html/body/left/form/table/tbody/tr[2]/td[1]/input")).sendKeys("kamal");
于 2013-04-05T10:42:17.730 に答える