更快的替代 SelectedOption 以在下拉菜单中检索所选项目?

质押X

我需要能够从下拉菜单中检索选定的选项。我目前正在使用以下代码(Selenium 和 C#):

var selectName = new SelectElement(driver.FindElement(By.Id("Name"));
string name= selectName.SelectedOption.Text;

这有效,但在包含大量项目(1000+)的下拉菜单上非常慢(10+ 秒)。是否有其他方法可以更快地提供结果?

拉尔夫·迈尔

执行的的SelectedOption财产遍历所有选项,并返回所选择的一个。在这种情况下,大部分工作由客户端绑定完成。

您可以尝试<option>通过浏览器直接解释的 CSS检索当前选择的内容,这可能会更快。

例如:

driver.Navigate().GoToUrl("https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select");
driver.SwitchTo().Frame(driver.FindElement(By.Id("iframeResult")));

Console.WriteLine(driver.FindElement(By.CssSelector("select option:checked")).Text);

new SelectElement(driver.FindElementByTagName("select")).SelectByText("Saab");

Console.WriteLine(driver.FindElement(By.CssSelector("select option:checked")).Text);

分别产生VolvoSaab

编辑:我很快尝试了一个<select>带有 10000 个选项的标签,其中第 400 个选项被选中:

var sw = new Stopwatch();
sw.Start();
Console.WriteLine(driver.FindElement(By.CssSelector("select option:checked")).Text);
sw.Stop();
Console.WriteLine("CSS: {0}", sw.Elapsed);

sw = new Stopwatch();
sw.Start();
Console.WriteLine(new SelectElement(driver.FindElement(By.TagName("select"))).SelectedOption.Text);
sw.Stop();
Console.WriteLine("SelectElement: {0}", sw.Elapsed);

在Chrome中运行对比,运行时差异巨大:

CSS:           00:00:00.0383144
SelectElement: 00:00:14.6210520

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在下拉菜单中设置所选项目?

来自分类Dev

Android-如何在下拉菜单中更改所选项目的背景颜色

来自分类Dev

提交前在下拉菜单中更改所选项目的值

来自分类Dev

在下拉菜单中获取所选选项的值

来自分类Dev

在下拉菜单中更改所选的选项值

来自分类Dev

熊猫中Series.add函数的更快替代品

来自分类Dev

Android Bitmap中getPixel和getPixel的更快替代方案?

来自分类Dev

MATLAB中all(a(:,i)== a,1)的更快替代品

来自分类Dev

python中list.extend的替代方法/更快的方法?

来自分类Dev

当需要索引位置时,Matlab 中 ismember 的更快替代方法?

来自分类Dev

在 python 2.7 中创建数组的替代/更快的方法

来自分类Dev

在下拉菜单中隐藏选项

来自分类Dev

如何在下拉菜单中获取所选选项的状态并在Firebase中显示

来自分类Dev

如何在下拉菜单中获取所选选项的位置

来自分类Dev

子菜单的替代下拉菜单

来自分类Dev

在下拉菜单中解析所选值

来自分类Dev

如何使用哈希图/字典从数据框中获取值?更快地替代R中的for循环

来自分类Dev

在3D矩阵中能更快地替代“ repmat”和“ permute”吗?

来自分类Dev

在编译为php时,在Haxe中是否有比Map <Int,Int>更快的替代方法

来自分类Dev

python 3中Selenium的send_keys是否有更快的替代方案?

来自分类Dev

在 python3 中是否有更快的替代 dict(zip(list1,list2)) ?

来自分类Dev

更快的替代grouby / shift

来自分类Dev

for循环的更快替代方法

来自分类Dev

替代deparse()的更快方法

来自分类Dev

Bootstrap JQuery:对所选项目的下拉菜单验证

来自分类Dev

如何使用php从下拉菜单中获取所选项目的值

来自分类Dev

提交后保留下拉菜单中的所选项目

来自分类Dev

获取下拉菜单中的所选项目不起作用

来自分类Dev

在下拉菜单的当前所选选项之前获取选项的文本

Related 相关文章

  1. 1

    在下拉菜单中设置所选项目?

  2. 2

    Android-如何在下拉菜单中更改所选项目的背景颜色

  3. 3

    提交前在下拉菜单中更改所选项目的值

  4. 4

    在下拉菜单中获取所选选项的值

  5. 5

    在下拉菜单中更改所选的选项值

  6. 6

    熊猫中Series.add函数的更快替代品

  7. 7

    Android Bitmap中getPixel和getPixel的更快替代方案?

  8. 8

    MATLAB中all(a(:,i)== a,1)的更快替代品

  9. 9

    python中list.extend的替代方法/更快的方法?

  10. 10

    当需要索引位置时,Matlab 中 ismember 的更快替代方法?

  11. 11

    在 python 2.7 中创建数组的替代/更快的方法

  12. 12

    在下拉菜单中隐藏选项

  13. 13

    如何在下拉菜单中获取所选选项的状态并在Firebase中显示

  14. 14

    如何在下拉菜单中获取所选选项的位置

  15. 15

    子菜单的替代下拉菜单

  16. 16

    在下拉菜单中解析所选值

  17. 17

    如何使用哈希图/字典从数据框中获取值?更快地替代R中的for循环

  18. 18

    在3D矩阵中能更快地替代“ repmat”和“ permute”吗?

  19. 19

    在编译为php时,在Haxe中是否有比Map <Int,Int>更快的替代方法

  20. 20

    python 3中Selenium的send_keys是否有更快的替代方案?

  21. 21

    在 python3 中是否有更快的替代 dict(zip(list1,list2)) ?

  22. 22

    更快的替代grouby / shift

  23. 23

    for循环的更快替代方法

  24. 24

    替代deparse()的更快方法

  25. 25

    Bootstrap JQuery:对所选项目的下拉菜单验证

  26. 26

    如何使用php从下拉菜单中获取所选项目的值

  27. 27

    提交后保留下拉菜单中的所选项目

  28. 28

    获取下拉菜单中的所选项目不起作用

  29. 29

    在下拉菜单的当前所选选项之前获取选项的文本

热门标签

归档