Python Selenium显示操作系统错误

时间:2017-09-20 15:01:58

标签: python selenium selenium-webdriver selenium-chromedriver

我运行了以下代码,并且预计只要符合条件(必须打开新的Google页面网址),它就会在新标签页中打开新的网址(google主页),但是它运行正常一段时间然后抛出一个异常。

这是我的代码。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import socket
from datetime import datetime

try:


    options =webdriver.ChromeOptions()
    options.add_argument('--ignore-certificate-errors')
    options.add_argument('--ignore-ssl-errors')
    driver = webdriver.Chrome(chrome_options=options, executable_path ="C:/Users/gsssaaaa/Desktop/Python/exe.win-amd643.6/selenium/chromedriver.exe",port=80)

    driver.get('file:///C:/Users/gsssaaaa/AppData/Local/Temp/Temp1_site.zip/site/index.html')

    time.sleep(30)

    ticketopened = False
    while True:

        if driver.find_element_by_class_name('custom-select').text == "Ready":
            time.sleep(0.5)

            if driver.find_element_by_class_name('custom-select').text == "Talking":
                if ticketopened == False:

                    window = 0
                    driver.execute_script("$(window.open('https://www.google.com'))")
                    driver.switch_to_window(driver.window_handles[window])
                    window = window + 1

                    ticketopened = True
                    continue
                else:
                    ticketopened = False
            else:
                continue
        else:
            continue

except Exception as e:
    print('Exception Occured: ',e)
    print('Time and Date: '+str(datetime.now())[0:19])

这是我的错误消息:

  

OSError:[WinError 10048]每个套接字地址只有一种用法   (协议/网络地址/端口)通常是允许的

我真的不知道端口。如果是关于端口问题,那么请你告诉我如何在python中使用端口以及在我的代码中使用它以避免这种异常。

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为在处理窗户方面存在一些差距。要打开一个新的选项卡/窗口并切换到它,会产生一点WebDriverWait,然后使用索引切换到新窗口。以下是打开https://www.google.co.in的示例代码块,打印Page Title,点击Gmail链接,然后在新标签页中打开它,switch_to新标签/窗口最后打开打印Page Title

driver.get('https://www.google.co.in')
print("Page Title is : %s" %driver.title)
link = driver.find_element_by_link_text('Gmail')
driver.execute_script('arguments[0].target="_blank";', link)
link.click()
wait = WebDriverWait(driver, 5)
wait.until(EC.number_of_windows_to_be(2))
driver.switch_to.window(driver.window_handles[-1])
wait.until(EC.title_contains("Gmail"))
print("Page Title is : %s" %driver.title)