2016-08-11 5 views
1

Я должен получить текст из td элементов из таблицы в HTML, который выглядит следующим образом:скребковые элементы TD в таблице в HTML

<table id="gvrslt" > 
    <tbody><tr style="font-size:10pt;"> 
     <th scope="col">Sem</th><th scope="col" style="font-size:X-Small;">Total Obtained Marks</th><th scope="col" style="font-size:X-Small;">Max Total Marks</th><th scope="col">Result</th> 
    </tr> 
    <tr> 
     <td align="center">VI</td> 
     <td align="center">458</td> 
     <td align="center">550</td> 
     <td align="center">PASSED</td> 
    </tr> 
</tbody></table> 

Я хочу, чтобы захватить 458 из таблицы, которая имеет более такие как td. Проблема в том, что перед тем, как попасть на страницу «Результаты» и получить вышеуказанный HTML, мне нужно ввести некоторые учетные данные, а затем отобразить страницу результатов с помощью Щелкните правой кнопкой мыши отключен. Теперь я могу получить источник страницы результатов через driver.page_source, но когда я пытаюсь найти элементы table через webdriver, он ищет страницу, на которой я ввел учетные данные, а не страницу фактических результатов. Есть ли способ для поиска driver.page_source для table и td элементов

Вот мой код:

html=driver.page_source 

soup = BeautifulSoup(html) 
table=soup.find_all('table',id='gvrslt') 

print(table) 
+0

Ваш Логин, вероятно, не увенчались успехом –

+0

@PadraicCunningham, если это не было, я бы не смотрел на мой результат –

+0

так что вы видите таблицу в driver.page_source? –

ответ

0

Попробуйте использовать Xpath в этом случае:

//table[@id='gvrslt']//td[index] 

с индексом ТД

+0

ищет страницу, на которой я вводим учетные данные, а не страницу результатов. –

+0

Проверьте эту ссылку, это может помочь вам при работе с page_source http://seleniumwebdrivertrainings.com/how-to-get-html-source-of-webelement-in-selenium-webdriver-using-python/ –

0

Если вы хотите получить текст напрямую, вы можете использовать css l ocator, чтобы добраться до второго td непосредственно, вместо того, чтобы использовать таблицу.

table[id='gvrslt'] td:nth-of-type(2) 

nth-of-type получает Вас 2-й td элемент

0

Я не знаком с селеном с помощью питона. Вы пытаетесь найти значение, используя xpath.

В C# ниже приведен код. Посмотрите, может ли он помочь вам каким-либо образом.

IWebElement tdCell = driver.FindElement(By.XPath("//table[@id='']/tbody/tr[2]/td[2]")); 
string valueOfTd = tdCell.Text; 
+0

Проблема заключается в том, что webdriver выполняет поиск страницы, на которой я вводим учетные данные, а не страницу фактических результатов, где щелчок правой кнопкой мыши отключен. –

+0

Если ваши фактические результаты находятся в разных вкладках или окнах, вам нужно переключить окно. Осталось ждать загрузки страницы, а затем повторите попытку. – Siva

+0

фактические результаты открываются в том же окне, а затем я беру исходный код с помощью 'driver.page_source', который имеет результаты, встроенные в таблицу. Как мне искать этот источник для содержимого таблицы? –

Смежные вопросы