无法在python中找到含有硒的元素



标题说明了一切,我在python中找不到含有硒的元素。

这是我的代码:

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

s = Service("C:Program Files (x86)Chromedriver.exe")
driver = webdriver.Chrome(service=s)

driver.get("https://soundcloud.com/signin")
driver.implicitly_wait(10)

cookies = driver.find_element(By.ID, "onetrust-accept-btn-handler")
if cookies.is_displayed():
cookies.click()
...

time.sleep(5)

signup = driver.find_element(By.NAME, "Your email address or profile URL")
signup.send_keys("test")

你正面临那个例外

Unable to find element 

导致所需元素在iframe中。因此,首先切换到iframe,然后与所需的web元素进行交互。而且nameemail而不是Your email address or profile URL

代码:

time.sleep(5)
driver.switch_to.frame(driver.find_element(By.XPATH, "//iframe[contains(@src,'https://secure.soundcloud.com/web-auth')]"))
time.sleep(5)
signup = driver.find_element(By.NAME, "email")
signup.send_keys("test")

同样,如果这工作,尝试删除time.sleep(5)和使用WebDriverWait代替

如前所述,元素signup位于iframe中。您也可以使用索引切换到iframe

driver.implicitly_wait(10)
driver.get("https://soundcloud.com/signin")
driver.find_element_by_id("onetrust-accept-btn-handler").click()
driver.switch_to.frame(0) # Required singup element is in the 1st iframe.
driver.find_element_by_id("sign_in_up_email").send_keys("Sample Text")

最新更新