无法设置选择值在硒的网络驱动器

问题描述:

我有一个网页,那里是级联式下拉菜单使用JavaScript。(见截图:) Cascaded Select无法设置选择值在硒的网络驱动器

第二个的数据看起来像通过取决于选择AJAX如何产生的第一个。 这里是第一选择代码:

<select class="form-control input-sm" name="aff_network_id" id="aff_network_id" onchange="load_aff_campaign_id($(this).val(), 0); load_landing_page(this.value); load_text_ad_id(this.value);"> 
    <option value="0"> -- </option> 
    <option value="1">Sales</option> 
</select> 

和第二选择,这里是代码:

<select class="form-control input-sm" name="aff_campaign_id" id="aff_campaign_id" onchange="load_text_ad_id(this.value); if($('#landing_page_style_type')){load_landing_page($('#aff_campaign_id option:selected').val(), 0, $('input:radio[name=landing_page_type]:checked').val()?$('input:radio[name=landing_page_type]:checked').val():'landingpage');} if($('#unsecure_pixel').length != 0) { change_pixel_data();}"> 
      <option value="0"> -- </option> 
      <option value="1">iPhone on Amazon · $100.00</option>   
</select> 

现在使用的网络驱动器,当我这样做:

  WebDriver driver=new FirefoxDriver(); 
      JavascriptExecutor js=null; 
      if (driver instanceof JavascriptExecutor) { 
       js = (JavascriptExecutor)driver; 
      } 

js.executeScript("document.getElementById('aff_campaign_id').value='1';" + 
          "return document.getElementById('aff_campaign_id').value;") 

这不会更改第二个级联选择的值。它总是返回“ - ”,即。默认值。在这里可以做些什么来改变选择的价值?

+0

您是否尝试使用'Select()'类来设置第一个'

开发人员可能已绑定一个事件与第一次下拉。我的意思是,在从onblur事件的第一个下拉菜单中选择选项后,它们可能会在第二个下拉菜单中生成依赖关系值。

所以你需要做的是你需要在选择选项后首先下拉事件。

+0

正是!在调用每个下拉菜单的onchange事件并等待脚本完成1秒后,它可以正常工作。 – rahulserver 2014-08-29 18:19:11

如果我正确理解问题,为什么不在第一个dropDown中使用webdriver选择值,然后(在第二次更改后的值)在第二个comboBox中获取值?例如像

//First click on first comboBox 
var dropDown = driver.findElement(By.Css("#aff_network_id")); 
dropDown.click(); 
//Select value from first dropDown 
dropDown.findElement(By.Css("option[value='1']")).click(); 

//after that value in second dropDown will be changed and you can get it's value 
driver.findElement(By.Css("#aff_campaign_id")).getAttribute('value'); 
+0

不起作用。第二个级联下拉菜单包含由ajax生成的元素。虽然第一个是静态的。 – rahulserver 2014-08-28 14:25:22

+0

会发生什么样的问题? Webdriver无法找到第二个元素?或从这个选项?使用之前描述的方法在第二个dropDown中选择了值之后,第二个dropDown会被更新吗? – 2014-08-28 14:30:47