Selenium - 无法使用 SwitchTo() 在 iframe 中找到输入元素
Selenium - Unable to find input elements inside iframe using SwitchTo()
我很难找到特定网站的两个输入元素。
好吧,正如您在上面看到的,“用户名”输入元素和“密码”输入元素位于 id = tab1 的 iframe 中。
所以我尝试了(除其他外)这样的事情:
driver = webdriver.Firefox()
driver.get('https://www.website.com/sites/en/Pages/default.aspx')
driver.SwitchTo().Frame(driver.FindElement(By.id("tab1")));
username = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="login-form"]/div[1]/input')))
username.send_keys(credentials.username)
password = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="login-form"]/div[2]/input')))
password.send_keys(credentials.password)
submit = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="loginBtn"]')))
action = ActionChains(driver)
action.move_to_element(submit).click().perform()
也就是说,我切换到框架“tab1”,然后使用它们的 XPath 搜索元素。 (完整的 XPath 和简单的 XPath)。
但我一次又一次收到以下错误:
Process finished with exit code -1073740791 (0xC0000409)
甚至没有激活“try-except”来向我展示可用于调试的内容。
嗯,问题是:我能以某种方式定位这些元素吗?
提前致谢。
wait=WebDriverWait(driver,10)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"#tab1")))
您正在使用 Java,请使用 Python 并等待。
driver.SwitchTo().Frame(driver.FindElement(By.id("tab1")));
进口:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
我很难找到特定网站的两个输入元素。
好吧,正如您在上面看到的,“用户名”输入元素和“密码”输入元素位于 id = tab1 的 iframe 中。
所以我尝试了(除其他外)这样的事情:
driver = webdriver.Firefox()
driver.get('https://www.website.com/sites/en/Pages/default.aspx')
driver.SwitchTo().Frame(driver.FindElement(By.id("tab1")));
username = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="login-form"]/div[1]/input')))
username.send_keys(credentials.username)
password = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="login-form"]/div[2]/input')))
password.send_keys(credentials.password)
submit = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="loginBtn"]')))
action = ActionChains(driver)
action.move_to_element(submit).click().perform()
也就是说,我切换到框架“tab1”,然后使用它们的 XPath 搜索元素。 (完整的 XPath 和简单的 XPath)。
但我一次又一次收到以下错误:
Process finished with exit code -1073740791 (0xC0000409)
甚至没有激活“try-except”来向我展示可用于调试的内容。
嗯,问题是:我能以某种方式定位这些元素吗?
提前致谢。
wait=WebDriverWait(driver,10)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"#tab1")))
您正在使用 Java,请使用 Python 并等待。
driver.SwitchTo().Frame(driver.FindElement(By.id("tab1")));
进口:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC