Python 3.x 如何使用Selenium和Python从标签标签中提取部分文本信息

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) 编辑:我必须

我试图通过不同的复选框进行循环,检查列表中是否有文本,然后单击“如果没有”,然后继续

我能够提取的html元素如下:

<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
    

参考文献 您可以在以下内容中找到一些相关讨论:


你离得够近了。 要检索文本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
    

参考文献 您可以在以下内容中找到一些相关讨论:


请提供一些代码?用我当前的执行情况编辑问题请提供一些代码?用我当前的执行情况编辑问题execution@soom是的,你可以。我会在短时间内更新答案。@soom是的,你可以。我会在短时间内更新答案。