我是硒的新手。我正在尝试自动化网站goibibo.com,并在网站中尝试使用xpath在“发件人”文本框中输入城市名称为“ Chennai”,并显示了一些建议。从这些建议中,我想选择“ Chennai”。
使用Selenium Java 3.141.59,Java SE 1.8。我尝试使用硒键库。当我从中输入“ Chennai”时,我试图单击向下箭头,然后单击Enter键。 (我尝试过手动执行此操作,并且奏效了。所以我很累使用硒键库来完成此操作,该库提供了执行键盘操作的功能。)Image of the website and the dropdown
WebDriver driver = new ChromeDriver();
driver.get("https://www.goibibo.com");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.findElement(By.id("gosuggest_inputSrc")).sendKeys("Chennai");
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
driver.findElement(By.xpath("//input[@id='gosuggest_inputSrc']")).sendKeys(Keys.chord(Keys.ARROW_DOWN, Keys.ENTER));
我希望代码输入chennai文本,并且在下拉菜单中应转到第一个文本,然后单击Enter。这样我将在“发件人”文本框中获得所需的源电台。该代码未显示任何错误。它正在输入值Chennai及其它。它没有采取任何措施。
答案 0 :(得分:0)
1秒内的时间不足。请尝试以下代码,以避免隐式等待。
driver.get("https://www.goibibo.com/");
driver.manage().window().maximize();
driver.findElement(By.id("gosuggest_inputSrc")).sendKeys("Chennai");
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("react-autosuggest-
1")));
driver.findElement(By.id("gosuggest_inputSrc")).sendKeys(Keys.DOWN);
driver.findElement(By.id("gosuggest_inputSrc")).sendKeys(Keys.ENTER);