【问题标题】:I cannot select "from city" in MakeMyTrip website with Selenium WebDriver. It does not select the specified city by entering the text "che"我无法使用 Selenium WebDriver 在 MakeMyTrip 网站中选择“来自城市”。输入文本“che”不选择指定城市
【发布时间】:2019-05-05 15:06:58
【问题描述】:

我正在尝试处理此网站中的自动提示下拉菜单 https://www.makemytrip.com/ 在 Eclipse 中使用 selenium webdriver

在 Selenium Webdriver 中运行此测试用例时,我没有收到任何异常,但我没有通过此测试执行从该网站获得预期的结果。

package udemyClasses;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class AutoSuggestiveDropdowns {
    public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();      
        driver.get("https://www.makemytrip.com/");  
        Thread.sleep(3000);
        WebElement f=driver.findElement(By.id("fromCity"));     
        f.sendKeys("che");      
        Thread.sleep(2000);
        f.sendKeys(Keys.ARROW_DOWN);
        f.sendKeys(Keys.ENTER);     
        Thread.sleep(2000);
        f.sendKeys(Keys.TAB);
        Thread.sleep(2000);
        WebElement t=driver.findElement(By.id("toCity"));       
        t.sendKeys("del");
        Thread.sleep(2000);
        t.sendKeys(Keys.ARROW_DOWN);        
        t.sendKeys(Keys.ENTER);
        Thread.sleep(2000);     
    }
}

实际上,我希望在该页面中“从城市”被选为钦奈,“到城市”被选为德里。但他们没有在“从城市”和“到城市”下拉菜单中选择任何城市。

【问题讨论】:

    标签: java eclipse selenium selenium-webdriver


    【解决方案1】:

    欢迎来到 SO。 您可以使用 xpath 选择城市,如下所示。

    driver.get("https://www.makemytrip.com/");  
    Thread.sleep(3000);
    WebElement f=driver.findElement(By.id("fromCity"));     
    f.sendKeys("che");      
    Thread.sleep(2000);
    f.findElement(By.xpath("//div[contains(@class, 'hsw_autocomplePopup')]//p[contains(.,'Chennai') and contains(@class,'font16')]")).click();
    WebElement t=driver.findElement(By.id("toCity"));       
    t.sendKeys("del");
    Thread.sleep(2000);
    f.findElement(By.xpath("//div[contains(@class, 'hsw_autocomplePopup')]//p[contains(.,'Delhi') and contains(@class,'font16')]")).click();
    Thread.sleep(2000); 
    

    【讨论】:

    • 在回答 新贡献者 时不相信此答案中的 Thread.sleep(2000),而在其他答案中您使用 WebDriverWait
    • 我这个答案的重点是原始帖子中提到的问题。 OP,必须处理硬编码的Time.Sleep()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多