Selenium webdriver 如何单击第三方页面的web元素?
我有一个电子商务网站,在一个页面上有一个名为PlaceOrder的按钮。当我点击PlaceOrder按钮时,它允许我打开一个名为Paypal的新窗口。我需要在不打开新窗口的情况下保持在同一选项卡上。之后,我需要点击贝宝页面的元素。 我该怎么做 我的代码如下: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
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页面的任何元素。你是否验证过你可以访问它的窗口句柄?