我正在尝试自动化提交简历页面的代码,它包含在智能文本框中,只要您在其中键入一些文本,就会在下面给出建议。您需要从给出的建议中选择并输入文本框。以下是代码和网址:
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命令不起作用,因为必须选择输入的值并且需要关闭控件。
答案 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)