Selenium 无法单击银行网上银行网站中的对象

Selenium 无法单击银行网上银行网站中的对象,selenium,selenium-webdriver,Selenium,Selenium Webdriver,下面是网站页面 我正在尝试单击“继续网上银行”按钮。但我无法做到这一点。我使用了xpath,但它不起作用。下面是我尝试过的xpath: driver.findElement(By.xpath(".//*[@id='wrapper']/div[6]/a/img")).click(); 步骤: 打开URl 点击网站上的登录按钮。新弹出窗口将打开 点击“继续网上银行”。这不起作用 以下是代码: driver.findElement(By.id("loginsubmit")).click();

下面是网站页面

我正在尝试单击“继续网上银行”按钮。但我无法做到这一点。我使用了
xpath
,但它不起作用。下面是我尝试过的
xpath

driver.findElement(By.xpath(".//*[@id='wrapper']/div[6]/a/img")).click();
步骤:

  • 打开URl
  • 点击网站上的登录按钮。新弹出窗口将打开
  • 点击“继续网上银行”。这不起作用
  • 以下是代码:

    driver.findElement(By.id("loginsubmit")).click();
    
        Thread.sleep(3000);
    
        Set<String> set = driver.getWindowHandles();
        Iterator<String> it = set.iterator();
        System.out.println(set.size());
    
        for( String windowTab : set){
            if(!windowTab.equalsIgnoreCase(MainWindow)){
                driver.switchTo().window(it.next());
                driver.manage().window().maximize();
                String Wdinw2 = driver.getWindowHandle();
                Thread.sleep(10000);
                System.out.println(driver.getTitle());
    
                driver.findElement(By.xpath(".//*[@id='wrapper']/div[6]/a/img")).click();
    
                break;
            }
    
        }
    
    driver.findElement(By.id(“loginsubmit”))。单击();
    睡眠(3000);
    Set=driver.getWindowHandles();
    Iterator it=set.Iterator();
    System.out.println(set.size());
    用于(字符串窗口选项卡:设置){
    如果(!windowTab.equalsIgnoreCase(主窗口)){
    driver.switchTo().window(it.next());
    driver.manage().window().maximize();
    字符串Wdinw2=driver.getWindowHandle();
    睡眠(10000);
    System.out.println(driver.getTitle());
    findelelement(By.xpath(“./*[@id='wrapper']/div[6]/a/img”)。单击();
    打破
    }
    }
    
    控制台:

    线程“main”org.openqa.selenium.NoSuchElementException中的异常: 没有此类元素:无法定位元素: {“方法”:“xpath”,“选择器”:“/*[@id='wrapper']/div[6]/a/img”}


    尝试使用以下代码并让我知道结果:

    String winHandleBefore = driver.getWindowHandle();
    for(String winHandle : driver.getWindowHandles()){
        driver.switchTo().window(winHandle);}
    
    WebDriverWait wait = new WebDriverWait(driver, 15);
    wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("img[alt='continue']"))).click();
    
    要切换回主窗口(如果需要):


    我只是想知道在//*[@id='wrapper']之前是否有一个点,我想你必须先移动到另一个窗口,因为当点击登录按钮时,“继续上网银行”按钮会显示在另一个窗口中。然后用xpath元素试试。您是否处理了对弹出窗口的更改?假设您有权限对此银行网站执行自动化测试。金融网站,尤其是银行,对于任何自动访问都非常偏执。如果您想用xpath单击“contuie to NetBanking”按钮,请同意@andersson代码。你可以用这种方式<代码>(By.xpath(“//img[@src='/assets/images/netbanking\u continue\u red.gif']))。单击()
    driver.switchTo().window(winHandleBefore);