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

时间:2017-08-08 18:00:03

标签: python selenium selenium-webdriver web-scraping python-3.6

我需要验证所有经销商是否在我公司的商店定位器中正确列出。为此,我正在考虑使用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,以便在我输入的城市/州的千里之内进行搜索,以便同时返回所有可能的结果。

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

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

我是否错过了让我这样做的Selenium部分?或者是否有更好的图书馆来实现我的目标?我使用的是Python 3.6。谢谢!

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以从选择框中选择一个值或下拉。但是改变HTML / Web页面中的值是不可能的,因为它是Web应用程序的一部分,无法通过Selenium Scripting进行控制。

答案 2 :(得分:0)

很多人都说过,Selenium不可能采取这种行动。在调查了其他一些解决方案后,我决定采用简单的答案:

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