我怎样才能使硒等到下一个页面加载相同的URL,并且具有相同的字段
问题描述:
我有下面这段代码显示:我怎样才能使硒等到下一个页面加载相同的URL,并且具有相同的字段
driver.findElement(By.id("submit")).sendKeys(Keys.ENTER);
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.id("search-trigger")).sendKeys(Keys.ENTER);
driver.findElement(By.id("search-trigger")).sendKeys("Shampoo");
driver.findElement(By.id("search-trigger")).sendKeys(Keys.ENTER);
我要搜索产品和搜索选项之前和之后登录页面,但在这里,我想以后登录页面 我用
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
做到这一点,但它不工作,我不能使用
WebElement “”= driver.findElement(By.id(""));
的搜索选项是两个页面 上和网址仍然登录也
答
按我的理解后相同,总之,要确保用户搜索一个产品之前已经登录。然而,你将无法使用WebElement“”= driver.findElement(By.id(“”));
你尝试明确等待的用户名/注销文本的存在...等
WebElement element = wait.until(ExpectedConditions.elementIsVisible(By.id(>someid>)));
下面为我工作,试图在flipkart登录后,搜索三星:
public static void f() throws InterruptedException
{
By signin = By.xpath(".//*[@id='container']/div/header/div[1]/div[1]/div/ul/li[9]/a");
Thread.sleep(2000);
By mobile = By.xpath("html/body/div[2]/div/div/div/div/div[2]/div/form/div[1]/input");
By password = By.xpath("html/body/div[2]/div/div/div/div/div[2]/div/form/div[2]/input");
By login = By.xpath("html/body/div[2]/div/div/div/div/div[2]/div/form/div[3]/button");
By myaccount = By.xpath(".//*[@id='container']/div/header/div[1]/div[1]/div/ul/li[8]/a");
By search = By.xpath(".//*[@id='container']/div/header/div[1]/div[2]/div/div/div[2]/form/div/div[1]/div/input");
//geko driver for firefox
System.setProperty("webdriver.gecko.driver", "path of geckodriver.exe");
System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.flipkart.com/");
driver.findElement(signin).click();;
driver.findElement(mobile).sendKeys("xxxxxxxxx");
driver.findElement(password).sendKeys("xxxxxxxx");
driver.findElement(login).click();
WebDriverWait wait = new WebDriverWait (driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(myaccount));
driver.findElement(search).sendKeys("samsung");
}