【发布时间】:2020-03-23 01:45:21
【问题描述】:
我正在寻求帮助以使用 selenium 运行循环。我想打开一个主页,然后单击链接时打开一个窗口,然后切换到新窗口,然后关闭新窗口以切换回主页。我的目标是多次执行此操作,但是当我运行代码时,它会运行一次(for k=0),然后我收到以下错误消息:
File "/Users/al/Desktop/code.py", line 34, in <module>
window_after = browser.window_handles[x+1]
IndexError: list index out of range
如果有人知道如何执行完整的代码,那就太好了!! 谢谢。
这是我要运行的代码:
import time
import re
import traceback
import sys
import csv
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
from random import randint
from lxml import etree
from lxml.cssselect import CSSSelector
import bs4 as bs
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')
browser.get('https://www.vivino.com/explore?e=eJwdizsKgDAUBG-zdRQst9QDBKzEIj5jCPhUovi5vdFqYGdHEwtoXGig7mZlDORhYyGsW4st2zDxdCn6w81QIdaBW4risXL0u-A6uj7ffpS53jOnhPCt5gXGoR73')
list1=browser.find_elements_by_xpath('//*/div[@class="explorerCard__explorerCard--3Q7_0 explorerPageResults__explorerCard--3q6Qe"]/div[2]/div/a/span[2]')
for k in list1:
time.sleep(2.5)
k.click()
time.sleep(2)
x=list1.index(k)
print(x)
window_after = browser.window_handles[x+1]
browser.switch_to_window(window_after)
browser.close()
browser.switch_to_window(browser.window_handles[0])
【问题讨论】:
-
window_handles 列表中的索引“x+1”上没有项目。 windows_handles的调试内容,你是从0开始数的吗?
标签: python selenium selenium-webdriver