python - 使用 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
这是错误我该如何编辑代码?
解决方案
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
您没有在页面上找到这些变量,因此只需尝试将它们包装起来。