如何在selenium webdriver中的智能文本框中插入文本?

时间:2015-09-27 08:31:10

标签: java selenium-webdriver

我正在尝试自动化提交简历页面的代码,它包含在智能文本框中,只要您在其中键入一些文本,就会在下面给出建议。您需要从给出的建议中选择并输入文本框。以下是代码和网址:

WebDriver w= new FirefoxDriver();
w.get("https://www.hrmantra.com/LetsLead/18_Recruitment/SubmittResume.aspx?cn=LetsLead");
w.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
w.findElement(By.id("StCityName_txtSpeedName")).sendKeys("Mumbai");

只有sendkeys命令不起作用,因为必须选择输入的值并且需要关闭控件。

3 个答案:

答案 0 :(得分:1)

文本框有一个选择下拉框,在用户选择他的城市时从动态显示进入城市,但此选择框位于iframe内(iframe ID:SpeedTyperFrameID),因此我们需要切换到它然后访问选择框

以下是代码

    WebElement city = driver.findElement(By.xpath("//*[@id='StCityName_txtSpeedName']"));

    city.click();

    city.sendKeys("chennai");

   //wait for the iframe to load and then switch to it

    new WebDriverWait(driver, 20).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("SpeedTyperFrameID")));

    Thread,sleep(3000);//added just to show u the effect remove it      
    WebElement byValue = driver.findElement(By.id("SelectList"));

    //using select class to select the element by its text      
    Select select = new Select(byValue);

    select.selectByVisibleText("Chennai");

    //switch back to default content inorder to access other elements outside the iframe

    driver.switchTo().defaultContent();

我已经测试了上面的代码,它工作正常

如果您有任何疑问,请退回。

答案 1 :(得分:0)

因为页面上没有id=StCityName_txtSpeedName的ID。您没有使用id=...作为ID,只需输入ID即可。

见下文。

w.findElement(By.id("StCityName_txtSpeedName")).sendKeys("Mumbai");

答案 2 :(得分:0)

理想情况下,在输入部分文本到输入后,您必须从下拉列表中找到所有建议并单击它。也许,尝试使用回车键,但我不知道它会有所帮助

element.sendKeys("Mumbai" + Keys.ENTER)