Home > Net >  Handle alert in Selenium Python with selenium
Handle alert in Selenium Python with selenium

Time:11-16

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()

Traceback (most recent call last): File "/Users/KimJinwoo/잡파일/크롤링 - 필름메이커스.py", line 45, in 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) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 802, in find_element_by_css_selector return self.find_element(by=By.CSS_SELECTOR, value=css_selector) File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 1238, in find_element return self.execute(Command.FIND_ELEMENT, { File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 418, in execute self.error_handler.check_response(response) File "/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 is not smart enough here selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: 대상을 찾을 수 없습니다. Message: unexpected alert open: {Alert text : 대상을 찾을 수 없습니다.} (Session info: chrome=95.0.4638.69) Stacktrace: 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 566316 13 libsystem_pthread.dylib 0x00000001880294ec _pthread_start 148 14 libsystem_pthread.dylib 0x00000001880242d0 thread_start 8

this is error how can i edit code?

CodePudding user response:

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

You are not finding those variable on a page so just wrap them up in a try except.

  • Related