gpt4 book ai didi

java - 无法在 selenium Web 驱动程序中使用 Javascript 设置选择值

转载 作者:行者123 更新时间:2023-11-28 19:38:10 25 4
gpt4 key购买 nike

我有一个网页,其中有一个级联下拉菜单。(参见屏幕截图:) 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;")

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

最佳答案

如果我正确地理解了问题,为什么不使用 webdriver 在第一个下拉列表中选择值,然后(在第二个更改中的值之后)在第二个组合框中获取值?!例如类似

//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');

关于java - 无法在 selenium Web 驱动程序中使用 Javascript 设置选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com