首页 > 解决方案 > 使用 selenium 在 Selenium Python 中处理警报

问题描述

import openpyxl
from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.chrome.options import Options
wb = openpyxl.Workbook()
chrome_options = Options()


sheet = wb.active
sheet.append(["1lable", "2lable"])
wb.save("필름메이커스.xlsx")

path = "/Users/KimJinwoo/Desktop/도구/파이썬 작업공간./chromedriver 2"

driver = webdriver.Chrome(path)

driver.get('https://www.filmmakers.co.kr/actorsAudition/category/2343665')

driver.find_element_by_name("user_id").send_keys("3434343")
driver.find_element_by_name("password").send_keys("3434343")
driver.find_element_by_css_selector("#fo_login_widget > button").click()
driver.get('https://www.filmmakers.co.kr/actorsAudition/11445767?category=2343665')
lost = ['https://www.filmmakers.co.kr/actorsAudition/11636208?category=2343665']
list = ['https://www.filmmakers.co.kr/performerWanted/11638737/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11637736/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/1163693348/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11636933/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11636543/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11636508/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11636231/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11635838/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11635747/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11635719/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11635657/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11635481/page/1?category=8294214' , 
'https://www.filmmakers.co.kr/performerWanted/11635371/page/1?category=8294214']

for i in list: 
    driver.get(i)

    number = 0
    number = number +1
    for number in range(1,11):
        number = number +1
        abc = driver.find_element_by_css_selector("#board_content > div.board > table.ui.unstackable.striped.celled.table > tbody > tr:nth-child(%d) > td.three.wide.text-bold" %number)
        table = driver.find_element_by_css_selector("#board_content > div.board > table.ui.unstackable.striped.celled.table > tbody > tr:nth-child(%d) > td:nth-child(2)" %number)
        t = abc.text
        b = table.text
        print(t,b)
        sheet.append([t,b])
    wb.save("필름메이커스1.xlsx")
driver.quit()

回溯(最后一次调用):文件“/Users/KimJinwoo/잡파일/크롤링 - 필름메이커스.py”,第 45 行,在 abc = driver.find_element_by_css_selector("#board_content > div.board > table.ui.unstackable. striped.celled.table > tbody > tr:nth-child(%d) > td.three.wide.text-bold" %number) 文件 "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3. 9/site-packages/selenium/webdriver/remote/webdriver.py”,第 802 行,在 find_element_by_css_selector 中返回 self.find_element(by=By.CSS_SELECTOR, value=css_selector) 文件“/Library/Frameworks/Python.framework/Versions/ 3.9/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py”,第 1238 行,在 find_element 返回 self.execute(Command.FIND_ELEMENT, { File "/Library/Frameworks/Python.framework/Versions /3.9/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py”,第418行,在执行self.error_handler.check_response(response)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9 /site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace, alert_text) # type: ignore[call-arg] # mypy 在这里 selenium 不够聪明。 common.exceptions.UnexpectedAlertPresentException:警报文本:대상을 찾을 수 없습니다。消息:意外警报打开:{警报文本:대상을 찾을 수 없습니다.}(会话信息:chrome=95.0.4638.69)堆栈跟踪:0 chromedriver 2 0x00000001004ff89c __gxx_personality_v0 + 538736 1 chromedriver 2 0x0000000100495b64 __gxx_personality_v0 + 105272 2 chromedriver 2 0x000000010009ead0 chromedriver 2 + 158416 3 chromedriver 2 0x00000001000f720c chromedriver 2 + 520716 4 chromedriver 2 0x00000001000c34d8 chromedriver 2 + 308440 5 chromedriver 2 0x00000001004c2ca0 __gxx_personality_v0 + 289908 6 chromedriver 2 0x00000001004d6dc8 __gxx_personality_v0 + 372124 7 chromedriver 2 0x00000001004db94c __gxx_personality_v0 + 391456 8 chromedriver 2 0x00000001004d7d04 __gxx_personality_v0 + 376024 9 chromedriver 2 0x00000001004b8c88 __gxx_personality_v0 + 248924 10 chromedriver 2 0x00000001004f0bd0 __gxx_personality_v0 + 478116 11 chromedriver 2 0x00000001004f0d44 __gxx_personality_v0 + 478488 12 chromedriver 2 0x0000000100506458 __gxx_personality_v0 + 56631613 libsystem_pthread.dylib 0x00000001880294ec _pthread_start + 148 14 libsystem_pthread.dylib 0x00000001880242d0 thread_start + 8

这是错误我该如何编辑代码?

标签: pythonseleniumalert

解决方案


for i in list: 
    driver.get(i)
    number = 0
    number = number +1
    for number in range(1,11):
        number = number +1
        try:
            abc = driver.find_element_by_css_selector("#board_content > div.board > table.ui.unstackable.striped.celled.table > tbody > tr:nth-child(%d) > td.three.wide.text-bold" %number)
            table = driver.find_element_by_css_selector("#board_content > div.board > table.ui.unstackable.striped.celled.table > tbody > tr:nth-child(%d) > td:nth-child(2)" %number)
            t = abc.text
            b = table.text
            print(t,b)
        except:
            pass

您没有在页面上找到这些变量,因此只需尝试将它们包装起来。


推荐阅读