我可以使用 Selenium 更改 select 框选项的值吗?

Can I change the value of a select box option using Selenium?

我需要确认我们所有的经销商都在我公司的商店定位器中正确列出。为此,我正在考虑使用 Python 抓取所有内容。

我能够使用 Selenium 找到搜索表单,并在位置框中填写城市和州。我对搜索半径有疑问。值已设置,代码如下所示:

代码:

<select id="radius" name="radius">
  <option value="5">Within 5 miles</option>
  <option value="10">Within 10 miles</option>
  <option value="15">Within 15 miles</option>
  <option value="25">Within 25 miles</option>
  <option value="50" selected="selected">Within 50 miles</option>
  <option value="100">Within 100 miles</option>
</select>

我想做的是将一个选项的值设置为 1000,以便在我输入的 city/state 的 1000 英里范围内搜索,以便同时 return 所有可能的结果时间.

有没有办法用 Selenium 做到这一点?我检查了文档,但找不到更改值的方法,只能检索它们。

我知道可以使用 RoboBrowser 库,但我似乎无法在它们之间使用相同的浏览器会话。

我是否遗漏了让我执行此操作的 Selenium 部分?还是有更好的图书馆来实现我的目标?我正在使用 Python 3.6。谢谢!

这在 Selenium 中是不可能的,因为这基本上意味着更改 Web 应用程序数据。但更重要的是为什么你在测试时需要它 ??

您可以 select 来自 Select 框或下拉列表的值。但是更改 HTML/Web 页面中的值是不可能的,因为它是无法由 Selenium 脚本控制的 Web 应用程序的一部分。

许多人表示,Selenium 无法实现此类操作。在研究了其他一些解决方案之后,我决定采用简单的答案:

我使用 input() 冻结所有内容,同时手动进行所需的更改,然后返回控制台并按任意键继续。不优雅,但它可以用最少的输入完成工作。