如何在网站 selenium 上显示错误消息时打印消息

How to print a message, when error message is displayed on website selenium(如何在网站 selenium 上显示错误消息时打印消息)
本文介绍了如何在网站 selenium 上显示错误消息时打印消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

您好,我正在尝试使用 selenium 抓取网站,但有时该网站会阻止我的 ip 进行抓取并出现弹出消息.

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:

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

推荐答案

验证 弹出消息 你必须为 诱导 WebDriverWaitvisibility_of_element_located() 并且您可以使用以下任一 Locator策略:

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:

  • 使用 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")

  • 使用 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")
    

  • 这篇关于如何在网站 selenium 上显示错误消息时打印消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

    本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

    相关文档推荐

    groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
    Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
    Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
    Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
    Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)
    Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)