选择Drop Down - Selenium Webdriver

时间:2016-04-08 12:23:56

标签: ruby selenium selenium-webdriver

我正在一个演示网站上创建练习测试,但是,我遇到从下拉列表中选择一个值的问题,我无法找到元素,但是,它是正确的ID,我试过了通过ID和CSS选择器也没有运气:(我将在下面发布HTML和Selenium代码:

HTML

<select id="dropdown_7" name="dropdown_7" class="  piereg_validate[required]"><option value="Afghanistan">Afghanistan</option>

Ruby代码:

drop_list = @@wait.until {
          drop = @@driver.find_element :id => '#dropdown_7'
          drop if drop.displayed?
          drop.click
        }


        options=drop_list.find_element :id => '#dropdown_7'

        options.each do |i|
          if i.text == 'American Samoa'
            i.click
            break
          end

4 个答案:

答案 0 :(得分:1)

问题是您将ID指定为&#34;#dropdown_7&#34;。虽然这是一个与id&#34; dropdown_7&#34;匹配的CSS选择器,但它与id属性不匹配。

应该是:

drop = @@driver.find_element :id => 'dropdown_7'

答案 1 :(得分:0)

在下面的java中是选择下拉列表的方法

  Select dropdown = new Select(driver.findElement(By.id("your id")));

  dropdown.selectByVisibleText("option text here");

   dropdown.selectByIndex(1);

   dropdown.selectByValue("value attribute of option");

因此无需通过使用“在webdriver中选择”来单击选项。

谢谢你, 穆拉利

答案 2 :(得分:0)

我是如何在ruby中实现的:

Selenium::WebDriver::Support::Select.new(
    @driver.find_element(:how, :what)
).select_by(:how, :what)

答案 3 :(得分:0)

使用JavaScript执行程序单击列表中的选项。

public void javascriptclick(String element)
{ 
    WebElement webElement=driver.findElement(By.xpath(element));
    JavascriptExecutor js = (JavascriptExecutor) driver;

    js.executeScript("arguments[0].click();",webElement);   
    System.out.println("javascriptclick"+" "+ element);
}