[在练习Selenium时,我试图使使用自动建议下拉列表的British Airways网站自动化。手动输入几个字母时,下拉菜单将显示建议。自动化时,即使我使用了wait方法,它们也没有。有人告诉我这样的网站将自动化作为安全措施,但是请这样吗?
这是我的代码:
driver.get("https://www.britishairways.com/");
driver.manage().window().maximize();
driver.findElement(By.id("from")).click();
driver.findElement(By.id("from")).sendKeys("tor");
发件人字段,因为该元素是Angular元素,所以您需要将WebDriverWait用作elementToBeClickable()
,并且可以使用以下任一Locator Strategies ]:
cssSelector
:
driver.get("https://www.britishairways.com/travel/home/public/en_in/");
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#from[name=\"searchEntry\"]"))).sendKeys("tor");
xpath
:
driver.get("https://www.britishairways.com/travel/home/public/en_in/");
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='from' and @name=\"searchEntry\"]"))).sendKeys("tor");
浏览器快照: