我正在尝试编写一个代码,以便在两个位置之间找到最便宜的票。我陷入了代码的开头,因为selenium无法识别简单的输入文本框。这是代码。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class orbitzsimpleTest {
public static void main(String args[]) throws InterruptedException {
WebDriver dr = new FirefoxDriver();
dr.navigate().to("https://www.orbitz.com/");
Thread.sleep(5000);
System.out.println("after threat sleep");
dr.findElement(By.xpath(".//*[@id='flight-origin']")).sendKeys("SFO");
}
}
我还尝试使用包含类似
的XPath编写List<WebElement> s = dr.findElements(By.xpath(".//*[contains(@id,'flight_*')]"));
没有运气。它看起来很简单,但我很难过去。
答案 0 :(得分:0)
您可以使用dr.findElement(By.id('flight-origin'))
或(By.cssSelector('#flight-origin'))
来获取此元素。
最好使用'智能'等待(等待元素显示/可点击/可见)而不是睡眠。因为它可能是5秒是不够的,你试图将密钥发送到尚未加载的输入。
答案 1 :(得分:0)
我想我找到了它没有认识到那个元素的原因。这是因为必须在找到此文本框之前选择航班选项卡。我能够修复它。 非常感谢您的投入。