python selenium爬虫input隐藏属性的值时打印不出来

img

img

img


如图所示,想要获取input里的value值但因为隐藏属性打印不出来,删除type的隐藏属性,那value值也没有了

您好,您提供的代码不充分,所以我用vue3搭建了一个类似的网站

img


以下是python代码:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get("http://127.0.0.1:5173")

hidden_inputs = driver.find_elements(By.XPATH, "//input[@type='hidden']")

for input in hidden_inputs:
    value = input.get_attribute('value')
    print("隐藏的value为:" + value)

driver.quit()

img

可以使用Selenium的find_element_by_namefind_element_by_xpath方法来获取该元素,然后使用get_attribute方法获取其value属性值。示例如下:

from selenium import webdriver

# 启动浏览器
driver = webdriver.Chrome()

# 打开页面
driver.get('http://example.com')

# 查找元素并获取其value属性值
input_elem = driver.find_element_by_name('anyname')
value = input_elem.get_attribute('value')

# 打印结果
print(value)

# 关闭浏览器
driver.quit()

其实我给你的示例代码应该不是你想要的。但是我想说的是,没有道理type=hidden我们就获取不到,获取到的话,那么也应该可以获取到value值。
我建议你在前面加些等待,有可能是页面还没加载出来。另外,也可以调试下,或者加长等待(你来得及手动去运行起来的页面上查看是不是有值)。如果还不行,也可以考虑使用JS(可以先在console里试试JS行不行, 然后再用selenium执行JS代码)。

实在不行,我们可以一起看看。还是眼见才为实。

该回答引用GPT
可以通过JavaScript的getAttribute方法获取input的value值,即使type属性被删除也可以获取到。代码如下:

var input = document.getElementById("inputId");
var value = input.getAttribute("value");
console.log(value);

其中,"inputId"是input元素的id属性值。