为什么这个 Xpath 不适用于 selenium?
Why is this Xpath not working with selenium?
我正在尝试输入电子邮件地址来测试登录,但我仍然收到此错误:no such element: Unable to locate element:
我尝试使用相对和绝对 Xpath
并收到相同的错误消息。
请原谅我,因为我肯定遗漏了一些简单的、非常新的东西!
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Chrome()
url = 'https://soundcloud.com/signin'
driver.get(url)
time.sleep(2)
driver.find_element_by_xpath('//*[@id="sign_in_up_email"]').send_keys('test@test.com')
它抛出错误的原因是因为元素 sign_in_up_email
存在于 iframe 中
Refer image
查看 link here 以了解有关如何切换到 iframe 的详细信息
您首先需要切换到 iframe,然后在输入中输入值
注意:- 当您第一次打开页面时,您可能会看到来自 soundcloud 的 accept cookies
弹出窗口,您必须接受
你的解决方案看起来像
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Chrome()
url = 'https://soundcloud.com/signin'
driver.get(url)
driver.maximize_window()
time.sleep(2)
# Accept cookie
driver.find_element_by_id('onetrust-accept-btn-handler').click()
# Switch to frame
driver.switch_to.frame(driver.find_element_by_class_name("webAuthContainer__iframe"))
driver.find_element_by_xpath('//*[@id="sign_in_up_email"]').send_keys('test@test.com')
我正在尝试输入电子邮件地址来测试登录,但我仍然收到此错误:no such element: Unable to locate element:
我尝试使用相对和绝对 Xpath
并收到相同的错误消息。
请原谅我,因为我肯定遗漏了一些简单的、非常新的东西!
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Chrome()
url = 'https://soundcloud.com/signin'
driver.get(url)
time.sleep(2)
driver.find_element_by_xpath('//*[@id="sign_in_up_email"]').send_keys('test@test.com')
它抛出错误的原因是因为元素 sign_in_up_email
存在于 iframe 中
Refer image
查看 link here 以了解有关如何切换到 iframe 的详细信息
您首先需要切换到 iframe,然后在输入中输入值
注意:- 当您第一次打开页面时,您可能会看到来自 soundcloud 的 accept cookies
弹出窗口,您必须接受
你的解决方案看起来像
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Chrome()
url = 'https://soundcloud.com/signin'
driver.get(url)
driver.maximize_window()
time.sleep(2)
# Accept cookie
driver.find_element_by_id('onetrust-accept-btn-handler').click()
# Switch to frame
driver.switch_to.frame(driver.find_element_by_class_name("webAuthContainer__iframe"))
driver.find_element_by_xpath('//*[@id="sign_in_up_email"]').send_keys('test@test.com')