Selenium WebDriver失败,出现NoSuchElementException

时间:2018-08-18 19:32:55

标签: python selenium-webdriver

我遇到以下提到的错误。请告知我是否无法提供该元素的正确路径。

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//form[@id="extended-nav-search"]/input[1]"}

这是我完整的代码。

from selenium import webdriver
import time
my_driver = webdriver.Chrome("C:\\chromedriver_win32\\chromedriver.exe")
my_driver.get("https://www.linkedin.com/uas/login")
my_driver.maximize_window()
email = my_driver.find_element_by_xpath('//*[@id="session_key-login"]')
email.send_keys('abc@gmail.com')
time.sleep(2)
password = my_driver.find_element_by_xpath('//*[@id="session_password-login"]')
password.send_keys('XXXXXX')
time.sleep(2)
login = my_driver.find_element_by_xpath('//*[@id="btn-primary"]')
login.click()
time.sleep(2)
search = my_driver.find_element_by_xpath('//form[@id="extended-nav-search"]/input[1]')
search.send_keys("python programmer")
button = my_driver.find_element_by_xpath('//*[@id="nav-search-controls-wormhole"]/button')
button.click()

上面的代码在代码的第15行有错误

1 个答案:

答案 0 :(得分:0)

当您要查找的元素具有ID时,您应该真正使用find_element_by_id。要将键发送到搜索输入,您需要找到子元素“输入”,然后可以使用xpath。您也可以通过从Keys.ENTER发送selenium.webdriver.common.keys来进行搜索。总而言之:

from selenium.webdriver.common.keys import Keys
#
# ...
#
search = my_driver.find_element_by_id("extended-nav-search")
search = search.find_element_by_xpath("//input")
search.send_keys("python programmer")
search.send_keys(Keys.ENTER)