селен - хотите выбрать все значения из второго столбца в таблице - PullRequest
0 голосов
/ 06 мая 2020

У меня есть эта таблица:

https://investing.thisismoney.co.uk/market-data/risers-fallers/

Я хочу, чтобы мой селен-скрипт выбрал все эпики

Я пробовал код ниже которого ничего не выводится.

epic = driver.find_element(By.XPATH,'//*[@id="content"]/div[2]/article/div/div[4]/table/tbody/tr/td').text

Я новичок в селене и не смог определить, как я go получаю все значения в столбце epi c. Может кто-нибудь любезно поможет

Ответы [ 4 ]

1 голос
/ 06 мая 2020

Пожалуйста, выполните следующие шаги:

1) Create xpath to reach each cell from where have to get Text:
epics = driver.find_elements_by_xpath("//table[contains(@class,'pricesGLTable')]//tr/td[3]")

2) Make a loop to iterate for every row to get the Text:
   for epic in epics:

3) Print from text into loop,
   print(epic.text) 

Например:

epics = driver.find_elements_by_xpath("//table[contains(@class,'pricesGLTable')]//tr/td[3]")
 for epic in epics:
 print(epic.text)

Попробуйте эти шаги и дайте мне знать ...

1 голос
/ 06 мая 2020

Попробуйте использовать этот код:

epics = driver.find_elements(By.XPATH, '/html/body/div[3]/div[1]/div/div[2]/article/div/div[4]/table/tbody/tr/td[3]')

for epic in epics:
    text = epic.text
    print(text)

РЕДАКТИРОВАТЬ 2: ваш код не работает, потому что ваш xpath неверен. Он извлекает все столбцы, а не только второй слева (столбец epi c), как xpath, который я написал в своем ответе.

0 голосов
/ 06 мая 2020

Используйте приведенный ниже селектор css, чтобы получить список значений в столбце epi c и выполнить итерацию по нему, чтобы напечатать текст:

   epics = driver.find_elements_by_css_selector("table[class^='pricesGLTable'] tr td:nth- 
   child(3)")
   for epic in epics:
   print(epic.text) 
0 голосов
/ 06 мая 2020

Используйте относительное выражение XPath и соответствующий метод driver.find_elements

epics = driver.find_elements_by_xpath("//table[contains(@class,'pricesGLTable')]//tr/td[3]")
list = ''
for label in epics:
   list += label.text
   print (list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...