2017-08-08 135 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腳本控制。

相關問題