我尝试使用Python和Selenium浏览网站,但我遇到了一个我无法弄清楚如何解决的问题(假设它甚至可能! )
<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')
非常感谢任何帮助。
答案 0 :(得分:4)
您可以尝试这一点,但要了解您发送任何值的网站可能不正常。它仍然可以将值限制为100等。
Javascript部分只接受您传递的元素,并将值设置为您传入的内容,例如: &#34; 300&#34;
select = driver.find_element_by_id("uniqueid")
WebDriver.execute_script("arguments[0].value = arguments[1]", select, "300")
答案 1 :(得分:0)
dimension = image.size['width'] * image.size['height']
driver.execute_script('arguments[0].setAttribute("dimension","{}");'.format(dimension), image)