Python 3.x 如何使用Selenium和Python从标签标签中提取部分文本信息
我试图通过不同的复选框进行循环,检查列表中是否有文本,然后单击“如果没有”,然后继续 我能够提取的html元素如下:Python 3.x 如何使用Selenium和Python从标签标签中提取部分文本信息,python-3.x,selenium,xpath,css-selectors,webdriverwait,Python 3.x,Selenium,Xpath,Css Selectors,Webdriverwait,我试图通过不同的复选框进行循环,检查列表中是否有文本,然后单击“如果没有”,然后继续 我能够提取的html元素如下: <label> <input type ="checkbox" value = "pf29"> <span> BNN Bloomberg </span> <span> class='count'>(16)</span> <label> 印刷(来源)给了我布隆伯格(16) 编辑:我必须
<label>
<input type ="checkbox" value = "pf29">
<span> BNN Bloomberg </span>
<span> class='count'>(16)</span>
<label>
印刷(来源)给了我布隆伯格(16)
编辑:我必须循环21个不同的元素,查看文本以查看源代码,并相应地选中复选框。您可以尝试以下任一css选择器
element_list =driver.find_elements_by_css_selector("div[class='modal-dialog-padded-body'] label>span:nth-of-type(1)")
source = element_list[3].text
print(source)
或
您可以尝试以下任一css选择器
element_list =driver.find_elements_by_css_selector("div[class='modal-dialog-padded-body'] label>span:nth-of-type(1)")
source = element_list[3].text
print(source)
或
你离得够近了。 要检索文本BNN Bloomberg,您需要深入一步,直到第一个
标记,您可以使用以下任一项:
- 使用
和css\u选择器
:get\u属性()
- 使用
和文本属性:xpath
print(driver.find_element_by_xpath("//div[@class='modal-dialog-padded-body']//label//span[not(contains(@class,'count'))]").text)
最佳做法 要打印第一个标题,您必须为元素(located)(的可见性)导出标题,您可以使用以下任一选项:
- 使用CSS_选择器和文本属性:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.modal-dialog-padded-body label span:not(.count)"))).text)
- 使用
和XPATH
:get\u attribute()
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考文献 您可以在以下内容中找到一些相关讨论:
标记,您可以使用以下任一项:
- 使用
和css\u选择器
:get\u属性()
- 使用
和文本属性:xpath
print(driver.find_element_by_xpath("//div[@class='modal-dialog-padded-body']//label//span[not(contains(@class,'count'))]").text)
最佳做法 要打印第一个标题,您必须为元素(located)(的可见性)导出标题,您可以使用以下任一选项:
- 使用CSS_选择器和文本属性:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.modal-dialog-padded-body label span:not(.count)"))).text)
- 使用
和XPATH
:get\u attribute()
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考文献 您可以在以下内容中找到一些相关讨论: