Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
101 views
in Technique[技术] by (71.8m points)

python - How to print a message, when error message is displayed on website selenium

Hi I am trying to scrape a website using selenium after sometime the website blocks my ip for scraping and a pop up message appears.

What i want to do is that whenever that pop up message appear it displays a warning on my terminal, My code looks like this to get the result

blo = driver.find_element_by_xpath('/html/body/div[2]/div/div/div[1]/h3')
if blo:
    print('ip blocked')
else:
    print('eroor')

But its not working i just get a blank screen, How can i solve this

HTML of the element:

<h3 class="modal-title">Notifications</h3>
<div class="alert alert-warning">Sorry, you have exceeded the maximum number of queries allowed per day. If you believe you have reached this message in error, please contact our support team.</div>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The validate the presence of the pop up message you have to induce WebDriverWait for the visibility_of_element_located() and you can use either of the following Locator Strategies:

  • Using CSS_SELECTOR:

    try:
        WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "h3.modal-title+div.alert.alert-warning")))
        print("ip blocked")
    except TimeoutException:
        print("eroor")
    
  • Using XPATH:

    try:
        WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//h3[@class='modal-title' and text()='Notifications']//following::div[@class='alert alert-warning']")))
        print("ip blocked")
    except TimeoutException:
        print("eroor")
    

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...