2017-08-08 85 views
1

我需要确认我们所有的经销商都在我公司的商店定位器中正确列出。为此,我正在考虑使用Python来抓取所有内容。我可以使用Selenium更改选择框选项的值吗?

我能够使用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,以城市内的千英里搜索什么/我输入的状态,以便同时返回所有可能的结果。

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

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

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

+0

据我所知,Selenium不能这样做。 –

+0

也许有一点JavaScript?我不认为Selenium能够操纵IMO的DOM – Mangohero1

+0

,这个用例违背了** Automation Testing **的目的。自动化测试是关于自动执行重复的“手动测试”任务。还有更多有用的工具可以实现这一点。但是,硒是可以做到的。投票_关闭这个问题。 – DebanjanB

回答

0

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

我用input()来冻结一切,而我做了手动需要的更改,然后继续回到控制台并按任意键继续。不够优雅,但它能以最少的投入完成工作。

0

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

+0

我们相信,并非我们所有的经销商都在商店定位器中列出。如果我单独运行SQL查询,我会得到预期的结果,但是当我们从网站运行它时,似乎有些缺失。但是,我们唯一可以比较的方式是苹果和苹果。 I.E,我想从商店定位器中获取完整列表,然后将其与SQL查询直接返回的内容进行比较,并查看结果是否相同。 – JJAJ

0

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

相关问题