簡體   English   中英

如何使用 Selenium 和 Python 從由空格分隔的文本節點獲取文本

[英]How to get text from textnodes seperated by whitespace using Selenium and Python

我在這個頁面上:

https://fantasy.premierleague.com/statistics

當您單擊播放器旁邊的任何“i”圖標時,會出現一個彈出窗口 window。 然后,我想獲得玩家的姓氏。 這就是“檢查元素”的樣子(“空白”實際上出現在一個框中):

<h2 class="ElementDialog__ElementHeading-gmefnd-2 ijAScJ">
 Kevin
 whitespace
 De Bruyne

我想要做的是獲取出現在空白之后的文本。 我可以使用以下方法獲取全文(即姓名和姓氏):

player_full_name = driver.find_element_by_xpath('//*[@class="ElementDialog__ElementHeading-gmefnd-2 ijAScJ"]').text

但是我怎樣才能只得到姓氏(即空格后面出現的名字)? 請注意,對於其他玩家來說,它可能是這樣的:

<h2 class="ElementDialog__ElementHeading-gmefnd-2 ijAScJ">
 Gabriel Fernando
 whitespace
 de Jesus

或者像這樣:

<h2 class="ElementDialog__ElementHeading-gmefnd-2 ijAScJ">
 Dean
 whitespace
 Henderson

即拆分文本並獲取最后一個或兩個元素將不起作用。

玩家的姓氏是其父WebElement中的第二個或最后一個文本節點。 因此,從Kevin De Bruyne中提取姓氏,例如De Bruyne ,您可以使用以下任一定位器策略

  • 使用CSS_SELECTORchildNodesstrip()

     driver.get("https://fantasy.premierleague.com/statistics") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//table//tbody/tr/td/button"))).click() print( driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "h2.ElementDialog__ElementHeading-gmefnd-2")))).strip())
  • 控制台 Output:

     De Bruyne
  • 使用CSS_SELECTORchildNodessplitlines()

     driver.get("https://fantasy.premierleague.com/statistics") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//table//tbody/tr/td/button"))).click() print( driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "h2.ElementDialog__ElementHeading-gmefnd-2")))).splitlines())
  • 控制台 Output:

     ['De Bruyne']
  • 注意:您必須添加以下導入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

參考

您可以在以下位置找到一些相關的詳細討論:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM