我有一个用python编写的selenium脚本,它单击一个链接,然后切换到链接打开的选项卡,这个过程需要在第一次正常时重复3次,然后执行driver.close()
以关闭当前活动选项卡,但在第二个循环中,我收到以下错误:
File "main.py", line 50, in main
driver.find_element_by_xpath('//*[@id="daily-sets"]/mee-card-group[1]/div/mee-card[2]/div/card-content/mee-rewards-daily-set-item-content/div/div[3]/a').click()
File "C:\Users\\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "C:\Users\\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchWindowException: Message: no such window: target window already closed
from unknown error: web view not found
代码如下:
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
from data import *
def main():
driver = webdriver.Chrome(executable_path=driverpath, options=options)
driver.get(URL)
#first
driver.find_element_by_xpath('//*[@id="daily-sets"]/mee-card-group[1]/div/mee-card[1]/div/card-content/mee-rewards-daily-set-item-content/div/div[3]/a').click()
driver.switch_to.window(driver.window_handles[1])
time.sleep(30)
driver.close()
#second
time.sleep(0.5)
driver.find_element_by_xpath('//*[@id="daily-sets"]/mee-card-group[1]/div/mee-card[2]/div/card-content/mee-rewards-daily-set-item-content/div/div[3]/a').click()
driver.switch_to.window(driver.window_handles[1])
time.sleep(30)
driver.close()
#third
time.sleep(0.5)
driver.find_element_by_xpath('//*[@id="daily-sets"]/mee-card-group[1]/div/mee-card[3]/div/card-content/mee-rewards-daily-set-item-content/div/div[3]/a').click()
driver.switch_to.window(driver.window_handles[1])
time.sleep(30)
driver.close()
这里有一种更简单的方法,可以循环3次单击,然后从选项卡转到父句柄
相关问题 更多 >
编程相关推荐