Невозможно проанализировать данные с BeautifulSoup: Python3 - PullRequest
0 голосов
/ 09 ноября 2018

[Пожалуйста, нажмите здесь, чтобы посмотреть теги] [1]

Ниже приведена одна из таблиц сайта, который я проверяю. Здесь, в «tbody», я хочу нажать на тег кнопки «MS» в нечетном и четном классах, что дает мне другую таблицу для дальнейшего анализа. Я использую Selenium и Python 3 для выполнения утилизации в Интернете. Текущий код только нажимает на кнопку «MS» в первом ряду. Как я могу создать цикл for, чтобы я мог перебирать все строки и щелкать по элементу 'MD' во всех строках?

Спасибо.

Ниже приведен код:

table_0=table.find_element_by_tag_name('tbody')
  for buttons in table_0.find_elements_by_tag_name("tr"):
     buttons.find_elements_by_xpath('//tr[@class="odd"]')
     buttons.find_element_by_xpath('//button[text()="MS"]').click()
  for buttons in table_0.find_elements_by_tag_name("tr"):
     buttons.find_elements_by_xpath('//tr[@class="even"]')
     buttons.find_element_by_xpath('//button[text()="MS"]').click()

1 Ответ

0 голосов
/ 09 ноября 2018

Вы должны иметь возможность использовать селектор CSS, чтобы собрать их для нажатия

.btn-group.btn-group-xs button:first-child

Селектор конечно работает:

image

Не уверен, нужно ли вам ждать, но может быть что-то вроде:

elements = driver.find_elements_by_css_selector(".btn-group.btn-group-xs button:first-child")
for element in elements:
    element.click()

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get("https://ibl.mdanderson.org/fasmic/#!/")
driver.find_element_by_css_selector("input[type='text']").send_keys("AKT1 (3 mutations)")
driver.find_element_by_css_selector("input[type='text']").send_keys(Keys.RETURN)

elements = driver.find_elements_by_css_selector(".btn-group.btn-group-xs button:first-child")
for element in elements:
    element.click()
...