我目前正在试用SeleniumPython做一些网络自动化。我卡住了结帐,你必须输入你的信用卡数据。我知道我必须切换到iFrame才能找到输入框。但是我从来没有能够切换框架。我尝试了ID或例如:
time.sleep(4)
frame = self.driver.find_element_by_xpath("//iframe[@name= '__privateHeidelpayFrame--heidelpay-holder-iframe-1616489954834']")
self.driver.switch_to.frame(frame)
name_input = self.driver.find_element_by_id("card-holder")
name_input.clear()
name_input.send_keys(credit_card.NAME)
我总是得到无法定位元素:{"method":"xpath","selector":"//iframe[@name='__privateHeidelpayFrame--heidelpay-holder-iframe-1616489954834']"}".
我从源代码中添加了一张图片。网页中的源代码
我很感谢你的建议!最好的,詹尼克
可能是身份证
尝试使用starst-with()
或使用其他属性(如class)来标识iframe。
frame = self.driver.find_element_by_xpath("//iframe[starts-with(@name, '__privateHeidelpayFrame--heidelpay-holder-iframe-')]")
self.driver.switch_to.frame(frame)
或
frame = self.driver.find_element_by_xpath("//iframe[@class='heidelpayUIIframe']")
self.driver.switch_to.frame(frame)
您是否尝试过使用更简单的API来查找iFrame?
是否
self.driver.find_element(By.NAME, "__privateHeidelpayFrame--heidelpay-holder-iframe-1616489954834'")
还什么吗?