执行页面上的javascript后,Python + Selenium重建了真正的HTML

我在硒中运行了这个超级简单的代码

<input name="X" id="unique" value="" type="text">

<script>
    document.getElementById("unique").value="123";
</script>

我可以通过调用获取输入值123 driver.execute_script('return document.getElementById("unique").value')

但是我无法获得具有更新值“ 123”的真实HTML代码 使用任何一种方法

  1. driver.page_source-无更新值
  2. driver.execute_script("return document.documentElement.outerhtml")无更新值
  3. driver.execute_script("return document.getElementById("unique").outerhtml")也没有更新的值

这个问题有解决方案吗?

syf19967709 回答:执行页面上的javascript后,Python + Selenium重建了真正的HTML

您为什么不尝试使用常规硒find_element来获取属性?使用Selenium的目的是使您可以访问其内置功能来为您执行此操作。 Javascript仅是解决独特问题的一种解决方法。

这将获取您发布的value元素上的input属性:

input_value = driver.find_element_by_xpath("//input[@id='unique']").get_attribute("value")

此功能与driver.execute_script('return document.getElementById("unique").value')

相同 ,

像这样尝试:

document.getElementById("unique").setAttribute('value','123');

这种方式肯定会更新DOM

本文链接:https://www.f2er.com/3109281.html

大家都在问