简体   繁体   English

无法在 Python 中使用 xpath 定位元素

[英]Unable to Locate element using xpath in Python

I am new in Python and I am having problem with my Code.我是 Python 新手,我的代码有问题。 I am trying web scrape using Selenium by xpath, but when I run my code it shows an error such as "Unable to Locate element using: {"method":"xpath","selector":"//*[@id="T1"]"} . Tried using ID and Name as the element, but still not working.我正在尝试通过 xpath 使用 Selenium 进行网页抓取,但是当我运行我的代码时,它显示了一个错误,例如"Unable to Locate element using: {"method":"xpath","selector":"//*[@id="T1"]"} 。尝试使用 ID 和 Name 作为元素,但仍然无法正常工作。

Here is my code:这是我的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from getpass import getpass
import time
    
username1 = input("Username:")
username2 = input("Username2:")
password = getpass("Password")
stock = input("Stock Name:")
   
driver = webdriver.Chrome("")
driver.get("")
   
time.sleep(10)
username_textbox = driver.find_element_by_name("txtUser1")
username_textbox.send_keys('username1')
   
username1_textbox = driver.find_element_by_name("txtUser2")
username1_textbox.send_keys('username2')
    
password_textbox = driver.find_element_by_name("txtPassword")
password_textbox.send_keys('password')
password_textbox.send_keys(Keys.RETURN)
    
time.sleep(10)
    
search = driver.find_element_by_xpath('//*[@id="T1"]')
search.send_keys('stock')
search.send_keys(Keys.RETURN)

Element from Inspection View of the site.来自站点检查视图的元素。

<input type="text" id="T1" name="T1" onkeypress="if (event.keyCode == 13) {document.getElementById('B1').click()}" size="8" value="" style="font-family: Helvetica; font-size: 8pt; color: #424542">"

Error Message selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="T1"]"} (Session info: chrome=84.0.4147.135)错误消息selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="T1"]"} (Session info: chrome=84.0.4147.135)

Maybe try waiting for the website to load.也许尝试等待网站加载。 The code below is taken from the selenium python docs下面的代码取自selenium python docs

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[@id="T1"]"))
    )
finally:
    driver.quit()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM