Я пытаюсь найти элемент кнопки (кнопки «Загрузить» или «Сохранить выбранные коды серий») веб-страницы, но я не могу сделать это каким-либо другим способом. Веб-страница не имеет iFrame, явный метод ожидания не работает, и на самом деле, что еще хуже, когда я перебираю все классы веб-страницы, элемент не отображается, в то время как некоторые элементы, которые не отображаются в 'inspect elements' из chrome, do.
x = browser.find_elements_by_xpath('//*[@class]')
for y in x:
print(y.get_attribute('class'))
Кроме того, еще одна неожиданная проблема заключается в следующем:
Элемент <div class="contentsInner">
, который имеет следующие три дочерних элемента,
<div class="frameDecorationPlane clearfix">
<div class="abstractResultArea">
<div class="contentsBorder">
Может быть расположен с помощью селектора xpath или css, но оставшиеся два, за исключением первого дочернего элемента, вызывают ошибку отсутствия такого элемента.
Я включил скриншот веб-страница, на которую я ссылаюсь ниже, для справки.
Наконец, я включил ниже код, который использовал для перехода на страницу веб-сайта, которая вызывает ошибку. Чтобы повторить ошибку, вы можете использовать следующую ссылку , просто выбрать любой случайный элемент и любой диапазон выходного года и просто нажать кнопку «Поиск». Вам не обязательно выбирать конкретно данные, которые я выбрал для экспорта.
# We open a browser window.
browser = webdriver.Chrome(executable_path='/Users/George/chromedriver_80', chrome_options=chromeOptions)
# We load the website's query:
browser.get('http://www.stat-search.boj.or.jp/ssi/cgi-bin/famecgi2?cgi=$nme_a000_en&lstSelection=PR01')
# Finds and clicks the Corporate Goods Price Index (2015 base) element.
element = browser.find_element_by_css_selector('body > div.contents > div > ul.tabContent > li:nth-child(1) > div.searchCondition > div.nodeMenu > div.selectMenuItem > table > tbody > tr.selectedMenu > td.menuNameCell')
element.click()
# Finds and clicks the next button.
element = browser.find_element_by_css_selector('body > div.contents > div > ul.tabContent > li:nth-child(1) > div.searchCondition > div.nodeMenu > div.resultCountPanel.clearfix > input')
element.click()
# Finds and clicks the Producer Price Index element.
element = browser.find_element_by_css_selector('body > div.contents > div > ul.tabContent > li:nth-child(1) > div.searchCondition > div.nodeMenu > div.selectMenuItem > table > tbody > tr.selectedMenu > td.menuNameCell')
element.click()
# Finds and clicks the next button.
element = browser.find_element_by_css_selector('body > div.contents > div > ul.tabContent > li:nth-child(1) > div.searchCondition > div.nodeMenu > div.resultCountPanel.clearfix > input')
element.click()
# Finds and clicks the All commodities element.
element = browser.find_element_by_css_selector('body > div.contents > div > ul.tabContent > li:nth-child(1) > div.searchCondition > div.nodeMenu > div.selectMenuItem > table > tbody > tr.selectedMenu > td.menuNameCell')
element.click()
# Finds and clicks the next button.
element = browser.find_element_by_css_selector('body > div.contents > div > ul.tabContent > li:nth-child(1) > div.searchCondition > div.nodeMenu > div.resultCountPanel.clearfix > input')
element.click()
# Finds and ticks the PR01'PRCG15_2200000000 PPI indicator element.
element = browser.find_element_by_css_selector('#menuSearchDataCodeList > tbody > tr:nth-child(1) > td > label')
element.click()
# Finds and clicks the add to search condition button.
element = browser.find_element_by_css_selector('body > div.contents > div > ul.tabContent > li:nth-child(1) > div.searchCondition > div.leafMenu > div:nth-child(6) > a')
element.click()
# Types into the 'From YYYY' output range.
browser.find_element_by_css_selector('#fromYear').send_keys('1960') # The start year is '1960'.
# Finds and clicks the search button.
element = browser.find_element_by_css_selector('#resultArea > div.abstractionMenuArea.clearfix > div:nth-child(1) > a:nth-child(1)')
element.click()
После этого эта строка вызывает ошибку:
element = browser.find_element_by_xpath('/html/body/div[2]/div/div[2]/table/tbody/tr[2]/td[4]/a')