Selenium with Python:从具有只读功能的表单中收集电子邮件 - python

我正在尝试从内部具有只读内容的网站上的表单收集电子邮件地址。

<input name="email" id="email" type="text" class="form-control" value="[email protected]" readonly="">

我希望能够获取电子邮件地址([email protected]),但是我尝试的所有操作均返回“无法找到元素”。

一切都已正确配置,脚本的其余部分都可以正常工作,而我遗漏了。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import re
import pandas as pd
import os

x = 0

all_volunteers = driver.find_elements_by_xpath('//*[@title="View volunteer record"]')
for volunteer in all_volunteers:
    volunteer.click()
    driver.implicitly_wait(3)
    # email_add = driver.find_element_by_id('emaillabel')
    #email_add = driver.switch_to_frame(driver.find_element_by_name('email'))
    #print(email_add.get_attribute('email'))
    #email_add = driver.find_element_by_css_selector('input id')
    #email_add = driver.find_element_by_xpath('//input [@name="email"]')
    #email_add = driver.find_element_by_tag_name('Email Address')
    email_add = driver.find_element_by_xpath('//*[@id="email"]')
    print(email_add.get_attribute('value'))
    # back button
    driver.execute_script("window.history.go(-1)")
    #increase counter by 1
    x += 1  

注释掉的所有内容(后跟#)是我尝试过的。

有谁能告诉我我做错了什么或想念什么?

python参考方案

我有一个调试解决方案来定位元素。

在浏览器中,打开包含电子邮件输入的网页
开放开发人员工具(F12)
在开发人员工具中打开控制台选项卡
键入$x('//input[@id="email"]')并查看元素是否位于。这是本机xpath定位器
您也可以在控制台中尝试document.getElementById('email')

如果仍然找不到该元素,请尝试在屏幕截图中标记的iFrame选择器以识别iframe并切换到该iframe。

Selenium with Python:从具有只读功能的表单中收集电子邮件 - python
如果返回多个元素,则意味着您可能必须修改选择器以查找唯一元素。

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

如何使用Selenium和Python启动基于Chromium的Vivaldi浏览器会话 - python

我正在尝试将vivaldi browser与Selenium一起使用。这是一款与Chrome浏览器非常相似的Chrome浏览器。我有Selenium与Firefox(geckodriver)和Google Chrome(chromedriver)一起工作,但是我似乎找不到Vivaldi的方法。任何帮助,将不胜感激。 python大神给出的解决方案 如果默认情…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

硒独立服务器日志级别 - python

长话短说:我正在尝试将日志级别更改为Selenium独立服务器上的WARNING。我在CentOS 6.7上运行2.48.2。我在服务器端尝试过,即在启动服务器时添加了-Dselenium.LOGGER.level=WARNING-不起作用。然后,我尝试使用默认级别作为警告的自定义属性文件-Djava.util.logging.config.file=/op…

将字符串分配给numpy.zeros数组[重复] - python

This question already has answers here: Weird behaviour initializing a numpy array of string data                                                                    (4个答案)         …