如何单击第三方页面的Web元素?

时间:2018-08-03 12:27:58

标签: selenium-webdriver

我有一个电子商务网站,并且在一页上有一个名为 Place Order 的按钮。当我单击下订单按钮时,它使我可以打开一个名为 Paypal 的新窗口。我需要保持相同的选项卡而不打开新窗口。之后,我需要单击该 Paypal 页面的元素。 我怎样才能做到这一点?

Screenshot

我的代码如下:

String parent_handle= driver.getWindowHandle();
System.out.println(parent_handle);
driver.findElement(By.xpath(".//*[@id='co-place-order-area']/div[2]/div[3]/div/button")).click();

new WebDriverWait(driver,10).until(ExpectedConditions.numberOfWindowsToBe(1));
Set<String> handles = driver.getWindowHandles();
System.out.println(handles);
for(String handle1:handles)
    if(!parent_handle.equals(handle1))
    {
        driver.switchTo().window(handle1);
        System.out.println(handle1);
    }

1 个答案:

答案 0 :(得分:0)

我不了解Java,但是在C#中,您将使用PopupWindowFinder类

        var target = driver.findElement(By.xpath(".//*[@id='co-place-order-area']/div[2]/div[3]/div/button"));

        PopupWindowFinder finder = new PopupWindowFinder(driver);
        var parent = driver.CurrentWindowHandle;
        string newHandle = finder.Click(target);
        driver.SwitchTo().Window(newHandle);

然后在处理新窗口后,您可以切换回父窗口。