Java Selenium Webdriver通过js向表单发送电子邮件
我如何将电子邮件传递到Java Selenium Webdriver通过js向表单发送电子邮件,java,google-chrome,selenium-webdriver,Java,Google Chrome,Selenium Webdriver,我如何将电子邮件传递到 您只需单击“Professional-Start free试用版”,这是我需要使用selenium webdriver传递电子邮件的地方。我注意到提供您电子邮件的弹出窗口位于不同的框架中。您应该管理上下文切换: import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver;
您只需单击“Professional-Start free试用版”,这是我需要使用selenium webdriver传递电子邮件的地方。我注意到提供您电子邮件的弹出窗口位于不同的框架中。您应该管理上下文切换:
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', 'abc@gmail.com');", driver.findElement(By.id("email")));
executor.executeScript("arguments[0].click();", driver.findElement(By.id("start-project")));
Thread.sleep(5000);
}
}
很抱歉,使用了太多的Thread.sleep()
,这通常不是一个好的做法。如果要提高性能,可以用WebDriverWait
替换它
我希望有帮助:)