Esta clase java se ha creado con testng. controlador.get("https://rediff.com");
WebElement rediffsignin = driver.findElement(By.xpath("//*[@id=\"signin_info\"]/a[1]")); rediffsignin.click(); Thread.sleep(3000); WebElement username = driver.findElement(By.id("login1")); username.sendKeys(email); WebElement epassword = driver.findElement(By.id("password")); epassword.sendKeys(rpassword); WebElement signin = driver.findElement(By.cssSelector("input[type='submit']")); signin.click(); driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS); //String currentHandle = driver. getWindowHandle(); Thread.sleep(1000); Emaillinkinvoke et = PageFactory.initElements(driver,Emaillinkinvoke.class); Thread.sleep(3000); driver.switchTo().defaultContent(); et.emaillink(emailsubject); try { Thread.sleep(2000); }catch(Exception e) { e.printStackTrace(); } Here comes the Emaillinkinvoke class:clase pública Emaillinkinvoke {
private WebDriver driver; @FindBy(how= How.XPATH, xpath = "//span[@class='rd_subject']") List<WebElement> emailThreads; public Emaillinkinvoke(WebDriver driver) { this.driver=driver; }public void emaillink(String emailsubject) lanza InterruptedException {
for(int i=0; i<emailThreads.size();) { if(emailThreads.get(i).getText().contains(emailsubject)) { emailThreads.get(i).click(); System.out.println("email Clicked"); break; } break; } Thread.sleep(1000); WebElement verifylink = driver.findElement(By.partialLinkText("link")); verifylink.click(); }El mismo código se pasa en el sistema operativo Windows: navegadores chrome, firefox y Edge. En Mac, se pasa el mismo código en MAC os - Chrome, firefox. Sin embargo, en Safari, frente a No such frame Exception al buscar el elemento 'rd_subject' en el correo electrónico.