【问题标题】:How to find element Internet Explorer, using selenium and Python如何使用 selenium 和 Python 查找元素 Internet Explorer
【发布时间】:2017-04-03 20:51:28
【问题描述】:

我正在尝试在登录页面中输入文本。登录页面为: https://ppair.uspto.gov/TruePassSample/AuthenticateUserLocalEPF.html

在 Internet Explorer 中使用“检查元素”(该网站仅在 Internet Explorer 中加载)在我看来,“选择数字证书”文本字段的名称是:“用户名”

这是我的脚本:

import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# Digital Certificate Path
DigitalCertificateFolder = 'C:\FOLDER'
DigitalCertificateFile = 'FILE.epf'
DigitalCertificatePath = DigitalCertificateFolder + '\\' + DigitalCertificateFile

password = 'PASSWORD'

# get the path of IEDriverServer
dir = 'C:\FOLDER2'
ie_driver_path = dir + "\IEDriverServer.exe"

# create a new Internet Explorer session
driver = webdriver.Ie(ie_driver_path)
driver.implicitly_wait(30)
driver.maximize_window()

# navigate to the application home page
driver.get("https://ppair.uspto.gov/TruePassSample/AuthenticateUserLocalEPF.html")

# get the search textbox
Select_Digital_Certificate = driver.find_element_by_name("username")
Select_Digital_Certificate.send_keys(DigitalCertificatePath)

这是 Internet Explorer 中检查元素的输出:

<INPUT name=username style="CURSOR: auto; BACKGROUND-IMAGE: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QsPDhss3LcOZQAAAU5JREFUOMvdkzFLA0EQhd/bO7iIYmklaCUopLAQA6KNaawt9BeIgnUwLHPJRchfEBR7CyGWgiDY2SlIQBT/gDaCoGDudiy8SLwkBiwz1c7y+GZ25i0wnFEqlSZFZKGdi8iiiOR7aU32QkR2c7ncPcljAARAkgckb8IwrGf1fg/oJ8lRAHkR2VDVmOQ8AKjqY1bMHgCGYXhFchnAg6omJGcBXEZRtNoXYK2dMsaMt1qtD9/3p40x5yS9tHICYF1Vn0mOxXH8Uq/Xb389wff9PQDbQRB0t/QNOiPZ1h4B2MoO0fxnYz8dOOcOVbWhqq8kJzzPa3RAXZIkawCenHMjJN/+GiIqlcoFgKKq3pEMAMwAuCa5VK1W3SAfbAIopum+cy5KzwXn3M5AI6XVYlVt1mq1U8/zTlS1CeC9j2+6o1wuz1lrVzpWXLDWTg3pz/0CQnd2Jos49xUAAAAASUVORK5CYII=); BACKGROUND-REPEAT: no-repeat; BACKGROUND-ATTACHMENT: scroll; BACKGROUND-POSITION: right center" type=text size=38 lpcachedvisval="1" lpcachedvistime="1491220212">

当我尝试在控制台中运行脚本时收到以下错误:“NameError: name 'Select_Digital_Certificate' is not defined”。

有人可以向我解释我做错了什么吗?

【问题讨论】:

    标签: python python-2.7 selenium internet-explorer selenium-webdriver


    【解决方案1】:

    位于iframe 内的必填输入字段,因此您需要在处理input 之前切换到该iframe

    driver.get("https://ppair.uspto.gov/TruePassSample/AuthenticateUserLocalEPF.html")
    driver.switch_to.frame('entrustTruePassGuiFrame')
    Select_Digital_Certificate = driver.find_element_by_name("username")
    ...
    

    要切换回您可能需要使用的主 HTML 文档

    driver.switch_to.default_content()
    

    【讨论】:

    • 我添加了以下两行:'LoginCheckbox = driver.find_element_by_name("accept").click() Authenticate = driver.find_element_by_name("B1").submit()' 一切正常但是应该在“提交”之后浏览器不会进入下一页。任何想法为什么?
    • 你能用driver.find_element_by_name("B1").click()代替Authenticate = driver.find_element_by_name("B1").submit()吗?
    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2019-11-30
    • 2021-02-13
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多