如何使用Selenium键入组合框

时间:2016-07-26 09:15:48

标签: selenium-webdriver jbehave

尝试使用selenium键入组合框时遇到困难。实际上是使用javascript和ajax加载数据的组合框。当用户单击按钮下拉列表时,组合框将加载数据。实际上我发现了困难,因为我无法使用函数ipp=&ip1; // make ipp point to ip1 *ipp=ip2; // dereference on ipp, change the value of pointee (i.e. ip1) to ip2 // i.e. make ip1 point to j *ipp=&k; // change the value of pointee (i.e. ip1) to the address of k // i.e. make ip1 point to k cout<<*ip1<<endl; // now we get 30 (i.e. the value of k) selectByValue()。这是代码:

selectByVisibleText()

2 个答案:

答案 0 :(得分:0)

请尝试以下c#代码。

IWebElement comboBoxElement = driver.FindElement(By.Id("OBFormFieldSelectInputRequired"));

<强>选项1 使用SendKeys直接发送ComboBox值,因为它只是一个输入元素。

comboBoxElement.SendKeys("ComboBox value to select");

<强>选项2 键入Firts您想要选择的值的几个字符

comboBoxElement.SendKeys("TE");

这将让您的应用程序显示UL和LI标签,其li值以TE开头。现在找到UL元素并找到其子LI元素。迭代每个LI元素并在迭代期间找到所需的值时执行.click。

答案 1 :(得分:0)

尝试以下代码。我用过JAVA

  1. 使用普通的SendKeys:

    driver.findElement(By.cssSelector("input.OBFormFieldSelectInputRequired").sendKeys("Beginning letters of the word you want");
    
  2. 使用findElements

    List<WebElement> elements = driver.findElements(By.cssSelector("list items cssSelector"));
            for (WebElement element : elements) {
                if (element.getText().equalsIgnoreCase("Enter the text you want")) {
                    element.click();
                     break;
                }
             }
    
  3. 或使用Java Robot

    List<WebElement> elements = driver.findElements(By.cssSelector("list items cssSelector"));
    Robot bot = new Robot();
    bot.setAutoDelay(1);
    
    for (WebElement element : elements) {
             bot.keyPress(KeyEvent.VK_DOWN);
             bot.keyRelease(KeyEvent.VK_DOWN);
             if (element.getText().equalsIgnoreCase("Enter the text you want")) {
                 bot.keyPress(KeyEvent.VK_ENTER);
                 bot.keyRelease(KeyEvent.VK_ENTER);
                 break;
             }
    }