我正在一个演示网站上创建练习测试,但是,我遇到从下拉列表中选择一个值的问题,我无法找到元素,但是,它是正确的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
答案 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);
}