2016-07-03 55 views
1

我正在嘗試使用Python和Selenium瀏覽網站,並遇到了一個問題,我無法弄清楚如何解決(假設它甚至有可能!)如何使用Selenium和Python更改DOM中的屬性值

<select id="uniqueid" autocomplete="off" value="10"> 
    <option selected="selected" value="10">10</option> 
    <option value="30">30</option> 
    <option value="50">50</option> 
    <option value="100">100</option> 
</select> 

上面的HTML代碼的網站上用於數據的表,我想湊顯示的行數。該表的總大小隻有300多行。

我在使用Selenium選擇其中一個選項時沒有問題,但是我希望實現的是操縱DOM並將最後一個值從100更改爲350,以便當我的腳本選擇該選項時整個表是顯示沒有我必須遍歷分頁。

我讀過,我可以使用execute_script,但我不知道如何更改其中一個選項的值。例如:

WebDriver.execute_script("document.getElementById('uniqueid') --what text goes here-- = '350') 

任何幫助將不勝感激。

回答

4

你可以試試這個,但要明白,你發送任何值的網站可能不會好。它可能仍然會將值限制爲100等。

Javascript部分僅接受傳遞它的元素並將值設置爲傳入的值,例如, 「300」。

select = driver.find_element_by_id("uniqueid") 
WebDriver.execute_script("arguments[0].value = arguments[1]", select, "300") 
+0

謝謝!有效。 – Matt

+0

對我無效 –

0
dimension = image.size['width'] * image.size['height'] 
driver.execute_script('arguments[0].setAttribute("dimension","{}");'.format(dimension), image) 
+0

請不要簡單地發佈代碼片段作爲答案。解釋爲什麼這會回答問題或者它如何解決問題。 –