3 回答

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,但我認為它應該可以工作。請讓我知道這可不可以幫你。謝謝

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,輸入文本,然后使用回車鍵提交。

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)
添加回答
舉報