【发布时间】:2018-07-10 00:40:23
【问题描述】:
我正在尝试使用 selenium 将信用卡信息发送到网站,并且每个元素都包含在 HTML 中的单独 iframe 标记中。例如,输入信用卡号的框包含在第一个 iframe 标记中,持卡人姓名包含在第二个 iframe 中,以此类推。我能够访问第一个 iframe 标签,并将信用卡号发送到框中,但是我无法找到持卡人姓名 iframe 标签,因此无法发送输入持卡人姓名的密钥。我想知道是否有一种方法可以使用 webdriver 专门搜索第二个(或第一个元素以外的任意数字)iframe 标记。
这是我使用的代码:
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
cc = driver.find_element_by_id("number")
cc.send_keys(credit_card_number)
这正确地找到了包含输入卡号字段的第一个 iframe 标记,并发送了相应的密钥
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
driver.find_element_by_id("name").send_keys(cc_name)
这导致了以下错误:消息:没有这样的元素:无法找到元素:{“方法”:“标签名称”,“选择器”:“iframe”}
【问题讨论】:
-
您需要获取特定的定位器来定位所有框架,如 xpath、id、name。在默认帧后切换到特定帧
标签: python selenium iframe webdriver