如何使用Selenium和Python更改DOM中的属性值

Mat*_*att 3 javascript python selenium selenium-webdriver

我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)

上面的HTML代码在网站上用于显示我正在尝试抓取的数据表中的行数.表的总大小超过300行.

我使用Selenium选择其中一个选项没有问题,但我希望实现的是操纵DOM并将最后一个值从100更改为350,这样当我的脚本选择该选项时,显示整个表而没有我遍历分页.

我已经读过我可以使用execute_script,但我不知道如何更改其中一个选项的值.例如:

WebDriver.execute_script("document.getElementById('uniqueid') --what text goes here-- = '350')
Run Code Online (Sandbox Code Playgroud)

非常感激任何的帮助.

Jef*_*ffC 6

您可以尝试这一点,但要了解该网站可能不适合您发送值的任何内容.它仍然可以将值限制为100等.

Javascript部分只接受您传递的元素并将值设置为您传入的任何内容,例如"300".

select = driver.find_element_by_id("uniqueid")
WebDriver.execute_script("arguments[0].value = arguments[1]", select, "300")
Run Code Online (Sandbox Code Playgroud)