TypeError:必须是str,而不是int在python 3
问题描述:
我试图在网站表单中提交一些电子邮件。我用硒与Python 3TypeError:必须是str,而不是int在python 3
这里是我的代码:
import os
import time
import getpass
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
while True:
chromedriver = 'F:\All Folders\chromedriver\chrome.exe'
#Uncomment this block if you don't want images to load(makes the procss a little bit faster)
'''
chromeOptions = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2}
chromeOptions.add_experimental_option("prefs",prefs)
browser = webdriver.Chrome(chromedriver, chrome_options=chromeOptions)
'''
browser = webdriver.Chrome(chromedriver)
browser.get("http://www.website.com") # website's home page
time.sleep(10)
# Logging into website
form = browser.find_element_by_class_name('regular_login')
email = form.find_element_by_name("email")
password = form.find_element_by_name("password")
button_element = browser.find_element_by_xpath("//*[@value='Login']")
#List of emails
email_list = ['[email protected]', '[email protected]', '[email protected]']
for emails, emails in enumerate(email_list):
email.send_keys(emails)
emails = emails + 1
print("success")
我的计划是使用while循环提交每封电子邮件中的每个浏览器会话。但是这行'emails = emails + 1'返回错误。
下面是引用:
F:\Python_Installer\python.exe C:/Users/user/PycharmProjects/Quora_Bot/westing.py
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/Quora_Bot/westing.py", line 39, in <module>
emails = emails + 1
TypeError: must be str, not int
Process finished with exit code 1
我不知道。有人可以善意解释我。
答
我相信这个问题是来自
for emails, emails in enumerate(email_list):
emails = emails + 1
首先,但这不是什么引起的错误,或者使用for i, emails in enumerate(email_list)
并做i
柜台的东西,或者干脆用for emails in email_list
如果你只需要的内容列表。
其次,删除emails = emails + 1
:在这一步,你尝试添加1
(整数),以emails
(串),这将导致错误,并且似乎任何没有任何用处,因为非常下一步你的循环将重新分配一个值为emails
,因为它是你的迭代器。
所以,如果你想要做的是遍历你的邮件列表,以便通过一个送他们一个,只是做:
for email_adress in email_list:
email.send_keys(email_adress)
我希望这有助于。
后Scriptum:
原样,你的代码将运行一个无限循环,这是你不想要的东西。在使用break
语句时运行一个无限循环的情况是非常有用的,但您似乎在这里没有任何东西;此外,由于您似乎试图迭代会话,因此您只需嵌套for
循环。
首先非常感谢@Archeo的详细解答。 (email_list): email.send_keys(email_adress)'没有工作并发送 'Traceback(最近一次调用最后一个): 文件“C:/ Users/user/PycharmProjects/Quora_Bot/westing。 py“,第30行,在 email.send_keys(email_adress) 文件”C:\ Users \ user \ AppData \ Roaming \ Python \ Python36 \ site-packages \ selenium \ webdriver \ remote \ webelement.py“,第348行,在send_keys {'text':“”.join(keys_to_typing(value)), TypeError:序列项目0:预期的str实例,发现int' –
然后我尝试: '为我,列举的电子邮件(email_list) :email.send_keys(email_adress)' –
他们俩都不窝rks –