我是新的编码。我试图使一个twitter机器人,但当我找到XPath并粘贴到我的代码,它给出了一个错误
我试图找到具有id、name、selector的元素并将其粘贴到我的代码中,但它们都不起作用
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
class TwitterBot:
def __init__(self , username , password) :
self.username = username
self.password = password
chrome_options = Options()
self.bot = webdriver.Chrome(ChromeDriverManager().install() , options = chrome_options)
def login(self):
bot = self.bot
bot.get("https://twitter.com/login")
time.sleep(5)
email = bot.find_element(By.XPATH , '/html[1]/body[1]/div[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[2]/div[2]/div[1]/div[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[5]/label[1]/div[1]/div[2]/div[1]/input[1]')
email.send_keys(self.username)
f = TwitterBot("blabla" ,"blabla")
f.login()
1条答案
按热度按时间vngu2lb81#
你需要学习如何创建正确的、短的和唯一的定位器。非常长的绝对XPath和CSS选择器是非常容易被破坏的。
您还需要使用
WebDriverWait
expected_conditions
显式等待,而不是硬编码延迟。下面的代码是有效的:
其结果是: