Selenium webdriver 如何单击第三方页面的web元素?

Selenium webdriver 如何单击第三方页面的web元素?,selenium-webdriver,Selenium Webdriver,我有一个电子商务网站,在一个页面上有一个名为PlaceOrder的按钮。当我点击PlaceOrder按钮时,它允许我打开一个名为Paypal的新窗口。我需要在不打开新窗口的情况下保持在同一选项卡上。之后,我需要点击贝宝页面的元素。 我该怎么做 我的代码如下: String parent_handle= driver.getWindowHandle(); System.out.println(parent_handle); driver.findElement(By.xpath(".//*[@i

我有一个电子商务网站,在一个页面上有一个名为PlaceOrder的按钮。当我点击PlaceOrder按钮时,它允许我打开一个名为Paypal的新窗口。我需要在不打开新窗口的情况下保持在同一选项卡上。之后,我需要点击贝宝页面的元素。 我该怎么做

我的代码如下:

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);
    }
String parent_handle=driver.getWindowHandle();
System.out.println(父句柄);
findelelement(By.xpath(“./*[@id='co-place-order-area']/div[2]/div[3]/div/button”)。单击();
新的WebDriverWait(驱动程序,10)。直到(预期条件。窗口数为(1));
Set handles=driver.getWindowHandles();
System.out.println(句柄);
用于(字符串句柄1:句柄)
如果(!parent_handle.equals(handle1))
{
驾驶员。切换到()车窗(把手1);
系统输出打印LN(handle1);
}

我不了解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);

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

同意。但我无法点击Paypal页面的任何元素。你是否验证过你可以访问它的窗口句柄?