当前位置: 首页 > 知识库问答 >
问题:

使用python selenium[duplicate]从HTML标记中提取占位符

葛修永
2023-03-14

我使用以下python代码启动Firefox网页。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver= webdriver.Firefox()
driver.get("https://www.quora.com")

在启动if之后,不知何故我知道了这个标记的xpath。

<input  
class="text header_login_text_box ignore_interaction" 
type="text" 
name="email" tabindex="1"
data-group="js-editable"
placeholder="Email"
w2cid="wZgD2YHa18" 
id="__w2_wZgD2YHa18_email">

如果我现在是属性的名称,我可以使用python上的selenium webdrive使用以下命令提取属性。

dict['attribute'] = driver.find_element_by_xpath(x_path).get_attribute(attribute)

所以我的输出是

dict = { 'attribute':value}

请帮助我找出提取所有属性及其值的方法,即使我不知道它有哪些属性。我的预期输出是

dict = { "class" : "text header_login_text_box ignore_interaction" 
        "type" : "text" 
        "name":"email" 
         "tabindex" : "1"
        "data-group" : "js-editable"
        "placeholder" : "Email"
        "w2cid" : "wZgD2YHa18" 
        "id" : "__w2_wZgD2YHa18_email"
        }

我不确定这可能有多远,但我希望像在字典中一样,我们甚至可以在不知道键的情况下提取数据。非常感谢。

共有3个答案

龙飞文
2023-03-14

要提取占位符文本,即电子邮件,您需要引导WebDriverWait使所需元素可单击,然后使用如下方法:

>

print(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='text header_login_text_box ignore_interaction' and @name='email']"))).get_attribute("placeholder"))

控制台输出:

Email

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
陆光济
2023-03-14

定义要提取占位符的输入标记的xpath。

xpath_input = "//input[@id='__w2_wZgD2YHa18_email']"
driver.find_element_by_xpath(xpath_input)

获取元素后,您可以通过get_attribute("占位符")提取占位符("Email")

呼延渝
2023-03-14

要获取占位符属性,请使用get_attribute()

element.get_attribute('placeholder')
 类似资料:
  • 我有两根弦。一个包含“格式”和占位符,另一个包含占位符的实际值。 例如: 字符串一: 字符串二: 字符串一: 字符串二: 我正在尝试为变量赋值第二个字符串中username占位符的值,并为变量赋值第二个字符串中password占位符的值。 我知道方法,但这不是用第二个字符串替换第一个字符串吗?

  • 我有这个html 并且,我试图得到每个标签的href。 例如,

  • 我要提取的数据来自这个网站https://www.adobe.com/support/security/advisories/apsa11-04.html。我只想提取 发布日期:2011年12月6日最后更新:2012年1月10日漏洞标识符:APSA11-04 CVE编号:CVE-2011-2462 代码: 输出: 我不想要这些信息。我该如何过滤呢? 平台:全部*注意:Adobe Reader fo

  • 我想摘录: 图像标记和 类数据内的锚标记文本 我成功地提取了img src,但从锚标记中提取文本时遇到了问题。 这是整个HTML页面的链接。 这是我的代码: 我试图做的是提取图像src(link)和div class=data中的标题,例如: 应提取: 尼康COOLPIX L26 16.1 MP数码相机,配备5倍变焦NIKKOR玻璃镜头和3英寸LCD(红色)

  • 嗨,我有一个html文件解析的场景。我正在使用jsoup解析html文件,解析后我想提取头标记(h1、h3、h4)。我用过医生。select()但它将只返回标题标记值,但我的要求是我应该提取h1到h3或h4之间的标记,反之亦然。 所以这里首先搜索html字符串是否包含任何H1,H3,H4。这里我们有h4,所以包括h4,它应该搜索下一个h1或h3,直到h3我们提取字符串并把它放在一个单独的html文

  • 我有一个使用占位符的Thymeleaf模板,其中占位符属性指定一个简短提示,描述输入字段的预期值或格式。 占位符在输入文本为空时工作。但是,如果需要编辑包含以前输入的数据的字段,则以前输入的文本将消失,并在输入收到焦点时替换为占位符文本。 有没有办法避免这种情况? 胸腺叶模板 以及生成的HTML