亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AttributeError: 'str' 對象沒有屬性 'send_keys' 在 Python

AttributeError: 'str' 對象沒有屬性 'send_keys' 在 Python

撒科打諢 2023-06-27 13:44:53
這是我的 Twitter 機器人項目的代碼。from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timeclass TwitterBot:    def __init__(self,username, password, search_text):        self.driver = webdriver.Chrome()        self.driver.get("https://twitter.com/home?lang=en")        time.sleep(2)        # Enter your username        self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div[1]/form/div/div[1]/label/div/div[2]/div/input')\            .send_keys(username)        # Enter your password        self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div[1]/form/div/div[2]/label/div/div[2]/div/input') \            .send_keys(password)        self.driver.find_element_by_xpath('/html/body/div/div/div/div[2]/main/div/div/div[1]/form/div/div[3]/div/div')\            .click()        time.sleep(3)        # Enter text in the search box        self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/div[2]/div/div[2]/div/div/div/div[1]/div/div/div/form/div[1]/div/div/div[2]/input')\            .send_keys(search_text)        search_text.send_keys(Keys.ENTER)        time.sleep(4)        while True:            passTwitterBot("[email protected]", "abcd1234", "lamborghini")當我嘗試運行此腳本時,出現 AttributeError。File "C:\Users\Praneeth Ravuri\PycharmProjects\Twitter Bots\Open Twitter Bots .py", line 24, in __init__    search_text.send_keys(Keys.ENTER)AttributeError: 'str' object has no attribute 'send_keys'有人可以解決我的問題并編輯這段代碼嗎?
查看完整描述

3 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

我不使用 twitter,所以我不完全知道你在說什么搜索框,但如果你只想在搜索框中輸入一些文本并按 Enter,那么,將其替換為:


# Enter text in the search box

self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/div[2]/div/div[2]/div/div/div/div[1]/div/div/div/form/div[1]/div/div/div[2]/input').send_keys(search_text)

search_text.send_keys(Keys.ENTER)

有了這個:


# Enter text in the search box

element = self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/div[2]/div/div[2]/div/div/div/div[1]/div/div/div/form/div[1]/div/div/div[2]/input')

element.send_keys(search_text)

element.send_keys(Keys.ENTER)

我無法在我的機器上測試這個,因為我不使用 Twitter,但我認為它應該可以工作。請讓我知道這可不可以幫你。謝謝


查看完整回答
反對 回復 2023-06-27
?
森欄

TA貢獻1810條經驗 獲得超5個贊

該.send_keys(...)方法屬于WebElement,而不是字符串。


這就是導致您的代碼產生此錯誤的原因:


AttributeError:“str”對象沒有屬性“send_keys”


而不是這一行:


# Enter text in the search box

self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/div[2]/div/div[2]/div/div/div/div[1]/div/div/div/form/div[1]/div/div/div[2]/input')\

    .send_keys(search_text)

search_text.send_keys(Keys.ENTER)

您可以使用以下代碼進行更改:


search_box = self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/div[2]/div/div[2]/div/div/div/div[1]/div/div/div/form/div[1]/div/div/div[2]/input')

search_box.send_keys(search_text)

search_box.send_keys(Keys.ENTER)

您應該初始化search_box為WebElement,輸入文本,然后使用回車鍵提交。


查看完整回答
反對 回復 2023-06-27
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

這個錯誤信息...


AttributeError: 'str' object has no attribute 'send_keys'

...意味著您的腳本/程序已嘗試調用send_keys()對象string。


什么地方出了錯

根據代碼行:


search_text.send_keys(Keys.ENTER)

您正在嘗試調用傳遞給方法的字符串類型send_keys()變量。其中 as是與WebElement關聯的方法。因此你會看到錯誤。search_textdef __init__(self,username, password, search_text)send_keys()


解決方案

您需要按如下方式調用 WebElementsend_keys():


self.element = self.driver.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/div[2]/div/div[2]/div/div/div/div[1]/div/div/div/form/div[1]/div/div/div[2]/input')

self.element.send_keys(search_text)

self.element.send_keys(Keys.ENTER)


查看完整回答
反對 回復 2023-06-27
  • 3 回答
  • 0 關注
  • 414 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號