通过单击元素遍历链接和子链接

2024-09-27 23:19:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个网页,其中有多个链接和子链接流如下

enter image description here

要单击子元素(2,7,8等等…,我正在使用driver.find_elements_by_xpath(所有子链接都可以通过class&div组合找到),如果我有多个链接(从技术上讲,每个子元素都有一个嵌套的for循环)。是否可以将其优化为函数,如递归深度优先搜索?下面是我尝试过的代码片段

def iterate_child_links():
    elements = driver.find_elements_by_xpath(childpath)
    element_count = len(elements)
    single_element = driver.find_element_by_xpath(childpath)
    if element_count == 1:
        single_element = driver.find_element_by_xpath(childpath)
        single_element.click() # JUST TO CLICK AND PROCEED TO THE NEXT 
    elif element_count > 1: # LOOP FOR EACH CHILD 
        splitnode_paths.append(driver.current_url)
        elements = driver.find_elements_by_xpath(childpath)
        for j in elements:
            x = driver.find_element_by_xpath(childpath)
            text = x.get_attribute('innerHTML')
            print(text)
            splitnode_paths.append(text)
        for k in range(element_count):
            html_text = elements[k].get_attribute('innerHTML')
            if (html_text in splitnode_paths):
                elements[k + 1].click()
            else:
                elements[k].click()

Tags: textforby链接drivercountelementselement

热门问题