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

5
我正在尝试使用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')

非常感谢任何帮助。

2个回答

9

你可以尝试这个方法,但要明白网站可能不允许你发送任何值。它可能仍然会将值限制在100等。

Javascript部分只是获取你传递给它的元素,并将值设置为你传递的值,例如“300”。

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

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

2
请不要仅仅发布代码片段作为答案。请解释为什么这个答案可以回答问题或者如何解决问题。 - David Hoelzer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接