2015-09-22 5 views
1

Я создаю бота для веб-клиента skype (https://web.skype.com/en) с использованием Selenium. Все работает как шарм, но через несколько мгновений я получаю ошибку 10048:
Адрес уже используется. Обычно разрешено только одно использование каждого адреса сокета (протокол/IP-адрес/порт)Python SkypeWebClient-Bot с селеном (ошибка 10048)

Я проверил netstat -n и увидел, что моя программа создает огромное количество соединений.

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 
#driver = webdriver.Chrome(executable_path='c:\Python34\chromedriver.exe') 
driver = webdriver.Firefox(executable_path='c:\Program Files\MozillaFirefox\firefox.exe') 
driver.get("https://web.skype.com/de/") 
time.sleep(8) 
login = driver.find_element_by_id("username") 
login.send_keys("username") 
password = driver.find_element_by_id("password") 
password.send_keys("password" + Keys.RETURN) 
time.sleep(15) 
newest2 = "" 
sending = driver.find_element_by_name("messageInput") 
message = driver.find_element_by_xpath("//*[@id='chatComponent']/div/swx-navigation/div/div/div/swx-chat-log/div[2]") 
while 1==1 : 
    newest = message.get_attribute("textContent") 
    print(newest) 
    if newest2 != newest: 
     if '!reactionTest' in newest: 
      sending.send_keys("Check" + Keys.RETURN) 
    newest2 = newest 
print("done") 

Я думаю, что каждый раз, когда я называю newest = message.get_attribute("textContent") новое соединение создается. Потому что, когда я не использую элемент сообщения, который всегда показывает самое новое сообщение, я не сталкиваюсь с проблемой. Я не могу найти решение для google относительно этой проблемы, включая селен. Разве нет возможности закрыть каждое соединение в конце бесконечного цикла? Любая помощь очень ценится :)

ответ

0

Я думаю, что вы забыли о driver.close(). Вот почему вы получаете огромное количество соединений

Смежные вопросы