我如何找到一个有着特定文本的兄弟的DIV并打印它Selenium Python?

bmvo0sr5  于 2022-11-24  发布在  Python
关注(0)|答案(3)|浏览(123)

我想从一个div中获取文本,但是有很多重复的类。过滤我的搜索的唯一方法是检查兄弟中的特定文本。现在我得到的是:

accountmanager = ()
def send_keys_in_loop_dropaccountmanager(locator):
    for i in range(5):
        try:
            global accountmanager
            test = wait.until(EC.element_to_be_clickable(locator)).text
            print(test)
            accountmanager = test
            break
        except:
            pass
send_keys_in_loop_dropaccountmanager((By.XPATH, "//div[contains(@class,'ahoy-value')] and following-sibling::div[contains(text(),'Accountmanager')]"))
print("accountmanager:", accountmanager)

我没有得到任何回应。
Google检查器代码(我想选择的文本为蓝色):"''

8yparm6h

8yparm6h1#

您可以根据已知的子元素文字内容,找出类别为ahoy-label-value-pair的父元素,然后寻找该父元素的另一个子元素,如下所示:

"//div[@class='ahoy-label-value-pair'][contains(.,'Accountmanager')]//div[@class='ahoy-value']"

selenium 代码如下所示:

accountmanager = wait.until(EC.visibility_of_element_located((By.XPATH, "//div[@class='ahoy-label-value-pair'][contains(.,'Accountmanager')]//div[@class='ahoy-value']"))).text
print("accountmanager name: ", accountmanager)
fwzugrvs

fwzugrvs2#

我想出来了,通过删除循环,检查其他职位,和重复检查,我的xpath,我想出了以下:

element = wait.until(EC.visibility_of_element_located((By.XPATH,"//div[contains(text(), 'Accountmanager')]/following-sibling::div")))
accountmanager = element.text
print("accountmanager:", accountmanager)
jbose2ul

jbose2ul3#

尝试以下xpath -

//div[text()='Peter Hendrik'][@class='ahoy-value']

编辑:如果你想浏览Accountmanager文本,你可以使用下面的xpath -

//div[text()='Accountmanager'][@class='ahoy-label']/following-sibling::div[@class='ahoy-value']

相关问题