Как получить данные таблицы html с селеном python - PullRequest
0 голосов
/ 22 марта 2020

Я хочу получить некоторые данные td из динамической таблицы c с селеном и pu sh их в массиве. Я попытался использовать:

driver.find_elements_by_class_name("row_data")

и получить html, затем найти td, но элемент списка не может получить атрибут inner HTML ...

<tr class="row_data text-silver">
                <td class="link">
                        <a href="/Account/UserCompleteRegister" data-toggle="tooltip" data-placement="left" title="ویرایش" class="btn btn-info btn-xs btnEditUser">
                            <i class="fa fa-edit"></i>
                        </a> 
مرضیه<input type="hidden" value="1332162477" class="userId">
                </td>
<td class="text-right">
ایرج ساعی 

</td>
<td class="text-right">
6180033005  

</td>
<td class="text-right">


</td>
<td class="text-right">
25 سال و 2 روز    

</td>
<td class="text-right">

<span class="GenderText">زن</span>


</td>
</tr>

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

Немного больше информации о том, какие именно данные вы ищете, помогло бы нам построить ответ каноническим способом. Однако, так как атрибут class узла <tr> содержит row_data и text-silver , вам необходимо вызвать WebDriverWait для visibility_of_element_located() и вы можете использовать любую из следующих Стратегий локатора :

  • Использование CSS_SELECTOR:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "tr.row_data.text-silver))).text)
    
  • Использование XPATH:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//tr[@class='row_data text-silver']"))).text)
    
  • Примечание : необходимо добавить следующие импорты:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
0 голосов
/ 22 марта 2020

Если на вашей странице есть одна таблица, и вы хотите использовать xpath, то, пожалуйста, обратитесь к решению ниже:

1.  //table//td[*]      
2.  //table//tr//td[*]

или укажите конкретный c идентификатор таблицы для обработки вашей таблицы

...