2016-02-07 1 views

ответ

0

Я заметил, что всплывающее окно для предоставления вашей электронной почты находится в другом кадре. Вы должны управлять переключением контекста:

import org.openqa.selenium.JavascriptExecutor; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class Email extends BrowserFunctions{ 
public static void main(String args[]) throws InterruptedException{  
    System.setProperty("webdriver.chrome.driver", "Drivers//chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 
    driver.get("https://www.wrike.com/price/"); 
    Thread.sleep(5000); 
    JavascriptExecutor executor = (JavascriptExecutor)driver; 
    executor.executeScript("arguments[0].click();", driver.findElement(By.id("start-free-trial-professional"))); 
    Thread.sleep(5000); 
    driver.switchTo().defaultContent(); // you are now outside both frames 
    driver.switchTo().frame("ajaxIframeFeatures"); 
    executor.executeScript("arguments[0].setAttribute('value', '[email protected]');", driver.findElement(By.id("email"))); 
    executor.executeScript("arguments[0].click();", driver.findElement(By.id("start-project"))); 
    Thread.sleep(5000); 
} 
} 

Извините за использование слишком много Thread.sleep(), это не очень хорошая практика в целом. Вы можете заменить его на WebDriverWait, если хотите улучшить производительность.

Надеюсь, это поможет :)

Смежные вопросы