当我尝试使用 Selenium WebDriver 在下拉列表中选择一个值时,我在 FireFox 中遇到了一些奇怪的行为。我正在尝试采取的步骤:
- 单击打开选择元素
- 点击我要选择的项目
- 单击打开下一个选择元素
这在 Chrome 和 IE 中完美运行。However, in FireFox, the select is clicked open (the items I can choose from are shown), the item I want to select ís clicked (get's highlighted as selected item), but when a different select element is selected and the select item is '关闭',默认值一直显示在选择项中。当我在调试模式下单步执行这段代码时,它的工作方式就像它应该的那样!这表明也许答案可能在于步骤之间的时间,但尝试不同长度的 Sleep() 并没有给出任何结果。
总结一下:
我想要的是:
- 单击打开选择元素
- 点击我要选择的项目
- 单击打开下一个选择元素
什么时候起作用:
- Chrome中的运行场景
- Internet Explorer 中的运行场景
- 逐步浏览 FireFox 中的场景
什么时候不起作用:
- FireFox 中的运行场景
处理这部分场景的代码:
// GetRandomValue() is a simplified representation of the code that just gives me a
// random value from the dropdown to select
var randomDropdownValue = GetRandomValue();
Driver.FindElement(By.Id(dropdownId)).Click();
SelectElement dropdownList = new SelectElement(Driver.FindElement(By.Id(dropdownId)));
dropdownList.SelectByValue(randomDropdownValue);
更新
创建自定义 FireFox 配置文件并禁用本机事件并不能解决问题。