Python Selenium - 获取具有日期角色名的元素

Python Selenium - get element with a date-rolename

我有以下 HTML 标记:

<div data-request-type="person" class="_entry _line _e _selected" id="c1055e27-0cfe-4f93-8bea-28a3421d842e" data-rolename="Member" data-isoptional="true">
    <div class="_subindicator _gray">&nbsp</div>
    <div class="_removePers">&nbsp;</div>
    <div class="_voluntaryPers">&nbsp;</div>
    <div class="_text">Member</div>
</div>

我必须使用 .click() 单击第一个 <div>

但现在我不知道如何用 selenium 找到它。我已经用 XPATH 试过了,但是我在这个页面上有几个具有不同 ID 的元素。并且 ID 始终会重新生成。这不起作用。

有人知道吗?

我尝试了很多解决方案...但没有任何效果。

我的最后一个 - 拍摄内部 div 和 class _text

   getAllMembers = browser.find_element_by_css_selector('td._text').get_attribute('innerHTML')

请帮忙 - 我怎样才能用 Selenium 做到这一点? :-)

尝试以下 xpath :

wait = WebDriverWait(driver, 20)

wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='_entry _line _e _selected'][@data-rolename='Member']"))).click()

注意:请将以下导入添加到您的解决方案

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

到select并通过其属性点击一个元素,你可以使用:

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

driver = webdriver.Firefox()
wait = WebDriverWait(driver, 10)
driver.get("https://site.tld")
xpath = "//div[@data-rolename='Member']"
el = wait.until(EC.element_to_be_clickable((By.XPATH, xpath)))
el.click()