#python-2.7 #selenium #xpath
#python-2.7 #селен #xpath
Вопрос:
Я пытаюсь получить сведения о продукте во втором столбце этой страницы:
Я использую следующий xpath
://*[@id="productDetailsTable"]/tbody/tr/td/div[2]/ul/li/text()
Код:
if self.hasXpath('//*[@id="productDetailsTable"]/tbody/tr/td/div/ul/li/b'):
prod_info_dt = []
prod_info_dd = []
prod_info_dt_list = self.browser.find_elements_by_xpath('//*[@id="productDetailsTable"]/tbody/tr/td/div/ul/li/b')
prod_info_list_count = len(prod_info_dt_list)
for curr_prod_dt_info in prod_info_dt_list:
prod_info_dt.append(curr_prod_dt_info.get_attribute('innerHTML').encode('ascii','ignore').strip().replace('.','_'))
prod_info_dd_list = self.browser.find_elements_by_xpath('//*[@id="productDetailsTable"]/tbody/tr/td/div[2]/ul/li/text')
for curr_prod_dd_info in prod_info_dd_list:
if curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip()=='<i class="fi-x"></i>':
prod_info_dd.append("No")
elif curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip()=='<i class="fi-check"></i>':
prod_info_dd.append("Yes")
else:
prod_info_dd.append(curr_prod_dd_info.get_attribute('innerHTML').encode('ascii','ignore').strip())
for x in range(prod_info_list_count):
product_dict[prod_info_dt[x]] = prod_info_dd[x]
Комментарии:
1. Какую проблему вы видите?
2. можете ли вы добавить скриншот, какую часть страницы вы пытаетесь извлечь.
3. я ищу xpath значений сведений о продукте: это xpath для него, но он не работает: prod_info_dd_list = self.browser.find_elements_by_xpath(‘//*[@id=»productDetailsTable»]/tbody/tr / td /div [2]/ul / li /text’)
Ответ №1:
Я не уверен, какое значение вы ищете. Если вы просматриваете описания продукта, ваш xpath
должен быть.
elements=driver.find_elements_by_xpath("//div[@id='feature-bullets']/ul/li/span")
proddesc=[]
for ele in elements:
print(ele.text)
proddesc.append(ele.text)
print(proddesc)