我运行了以下代码,并且预计只要符合条件(必须打开新的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中使用端口以及在我的代码中使用它以避免这种异常。
你能帮我解决这个问题吗?
答案 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)