У меня есть селен код для ввода различных условий поиска в поле поиска веб-сайта, используя следующий код:Поиск элементов Ошибка в Selenium После .submit() с помощью Python
browser = webdriver.Chrome()
browser.get(url)
search_box1 = browser.find_element_by_id('searchText-0')
search_box2 = browser.find_element_by_id('searchText-2-dateInput')
search_box1.send_keys("Foobars")
search_box1.send_keys("2013")
search_box1.submit()
, а затем я написал больше кода чтобы захватить количество обращений, полученных в результате данного поискового запроса. Тем не менее, для некоторых значений «Foobars» в отдельные годы, нет хитов и результаты запроса в страницу, как это:
<body class="search">
<div id="skip">...</div>
<div style = "display:non;">...</div>
<div id="container" class="js">
<div id="header">...</div>
<div id="search">...</div>
<div id="helpContent">...</div>
<div id="main-body" class="noBg">
<div class="error">
<div>Sorry. There are no articles that contain all the keywords you entered.</div>
<p>Possible reasons:
</p>
<ul></ul>
<p></p>
<p></p>
</div>
</div>
Как я могу проверить, что поисковый запрос это, а не на странице я получаю когда есть хиты из поискового запроса? Я собирался выполнить оператор if
, чтобы проверить, что поисковый запрос что-то вернул, но я не могу понять правильный синтаксис, чтобы получить элемент ошибки, который мне нужно сделать. Я пытался что-то вроде:
Error=browser.find_element_by_name('error')
или
Error=browser.find_element_by_xpath("//div[@class='error']")
Но я получаю сообщение об ошибке:
selenium.common.exceptions.NoSuchElementException: Message: u'no such element\n
Я хочу, чтобы идентифицировать элемент ошибки, так что я могу сделать что-то вроде
if Error == "There are no articles that contain all the keywords you entered":
do something
else:
do something else
или даже лучше, то, что скажет мне, существует ли ошибка для использования для условного. Любая помощь приветствуется.