Selenium Chrome Webdriver无法在Python中找到元素

时间:2018-10-19 23:05:49

标签: python selenium selenium-webdriver selenium-chromedriver

我正在创建一个python程序,它需要能够发送google hangouts消息。我最初尝试使用API​​,但发现它们仅适用于环聊。所以现在我正在尝试selenium webdriver。但是尝试打开聊天时遇到了问题;该程序给我一个错误:

NoSuchElementException: no such element: Unable to locate element: {"method":"CSS selector","selector":"div.gS5QBe.R8jgRe"}
  (Session info: chrome=69.0.3497.100)
  (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 10.0.17134 x86_64) 

我的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

driver = webdriver.Chrome()
driver.get("https://hangouts.google.com/")
driver.find_element_by_id("gb_70").click()
elem = driver.find_element_by_id("identifierId")
elem.send_keys("my_username")
elem.send_keys(Keys.RETURN)
sleep(3)
pas = driver.find_element_by_css_selector("input.whsOnd")
pas.send_keys("my_password")
pas.send_keys(Keys.RETURN)
sleep(10)
driver.switch_to_frame(driver.find_element_by_tag_name("iframe"))
driver.find_element_by_css_selector("div.gS5QBe.R8jgRe")

我尝试过在线查找,但找不到解决方案。这是website

1 个答案:

答案 0 :(得分:2)

页面中将有很多iframe。为元素所保存的特定iframe创建定位符。我看到第二个iframe具有新的消息按钮。

driver.switch_to_frame(driver.find_element_by_xpath("(//iframe)[2]"))

但是我建议您使用Google提供的Hangout API