需要一些关于在Python/Selenium WebDriver中使用JavaScript的建议吗

需要一些关于在Python/Selenium WebDriver中使用JavaScript的建议吗,javascript,python,selenium-webdriver,Javascript,Python,Selenium Webdriver,我整天都在寻找这个问题的答案。我正在尝试使用SeleniumWebDriver单击iframe并填写注册表上的字段。由于Python本身返回错误“无法定位元素”,因此我现在尝试使用JavaScript进入该字段 新错误是“引发异常”类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.WebDriverException:消息:u'document.getElementById(…)为null' 对我做错了什么有什么建议吗 from selenium import w

我整天都在寻找这个问题的答案。我正在尝试使用SeleniumWebDriver单击iframe并填写注册表上的字段。由于Python本身返回错误“无法定位元素”,因此我现在尝试使用JavaScript进入该字段

新错误是“引发异常”类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.WebDriverException:消息:u'document.getElementById(…)为null'

对我做错了什么有什么建议吗

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0

import string
import random
def id_generator(size=6, chars=string.ascii_uppercase):
     return ''.join(random.choice(chars) for x in xrange(size))

# Create a new instance of the Firefox driver
driver = webdriver.Firefox()

driver.get("http://bostinno.streetwise.co")

driver.find_element_by_link_text("Sign-up").click()

WebDriverWait(driver, 30)

driver.execute_script("document.getElementById('User_firstName').click()")

type(id_generator())

这应该可以通过Selenium API
switchto()
,它不需要任何JavaScript。它可能看起来像这样:

# move into the iframe
iframe = driver.find_elements_by_tag_name('iframe')[0]
driver.switch_to_frame(iframe)

# interact with your element inside the iframe
driver.find_element_by_link_text("Sign-up").click()
driver.find_element_by_id("User_firstName").click()

# do any other steps you need...

# move back out of iframe
driver.switch_to_default_content()