列表元素的代码

时间:2018-06-06 20:53:25

标签: python selenium

我在列表方面遇到了一些问题。 我需要的代码必须这样做 我有一个代码由css选择器创建的元素列表,代码找到所有元素, 它必须从列表的第一个元素获取文本,在链接中插入文本,让broswer查找该链接,然后返回到列表所在的初始页面,再次查看相同的列表,这次代码必须采用第二个元素的文本并执行相同的操作,因此,必须将文本放在链接中并查找它,然后将其返回到初始页面...

我写的代码就是这个

segui_css_selector= "._5f5mN.jIbKX.KUBKM.yZn4P"
selector_link_gente_seguita=".FPmhX.notranslate.zsYNt"

while a<50:

    #start the loop

    time.sleep(3)
    segui= driver.find_element_by_css_selector(segui_css_selector)
    time.sleep(1)
    a += 1
    print (a)
    time.sleep (5)
    link=driver.find_element_by_css_selector (selector_link_gente_seguita).text
    print(link)
    driver.get ("https://www.instagram.com/" + link + "/")
    time.sleep(3)
    segui = driver.find_element_by_xpath ("/html/body/span/section/main/div/header/section/div[1]/span/span[1]/button")
    segui.click()
    time.sleep(3)
    driver.get ("https://www.instagram.com/" + Pagina + "/")
    time.sleep(2)
    driver.find_element_by_xpath ('//a[@href=''"/' + Pagina + '/followers/''"]').click ()


    time.sleep (5)



a = 0

问题是这样,当代码完成第一个循环时,所以:它从第一个元素获取文本,将其放入链接,进行链接搜索然后返回初始页面,代码继续始终从第一个元素获取文本。 我不知道如何通过每次从不同元素中获取文本来继续循环

这是元素列表的一个例子:

&#13;
&#13;
<a class="FPmhX notranslate zsYNt " title="zoe1" href="/zoe1/">A</a>

<a class="FPmhX notranslate zsYNt " title="zoe2" href="/zoe2/">B</a>

<a class="FPmhX notranslate zsYNt " title="zoe3" href="/zoe3/">C</a>

<a class="FPmhX notranslate zsYNt " title="zoe4" href="/zoe4/">D</a>

<a class="FPmhX notranslate zsYNt " title="zoe5" href="/zoe5/">E</a>

<a class="FPmhX notranslate zsYNt " title="zoe6" href="/zoe6/">F</a>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

要获取与同一css选择器匹配的多个元素,您可以使用下面的find_elements_by_css_selector()方法。它将找到与css选择器匹配的所有Web元素,并返回这些Web元素的列表。因此,您可以遍历该列表:

segui_css_selector= "._5f5mN.jIbKX.KUBKM.yZn4P"
selector_link_gente_seguita=".FPmhX.notranslate.zsYNt"
time.sleep(3)
for element in driver.find_elements_css_selector(segui_css_selector):
    time.sleep(5)
    link = element.find_element_by_css_selector (selector_link_gente_seguita).text
    print(link)
    driver.get ("https://www.instagram.com/" + link + "/")
    time.sleep(3)
    segui = driver.find_element_by_xpath ("/html/body/span/section/main/div/header/section/div[1]/span/span[1]/button")
    segui.click()
    time.sleep(3)
    driver.get ("https://www.instagram.com/" + Pagina + "/")
    time.sleep(2)
    driver.find_element_by_xpath ('//a[@href=''"/' + Pagina + '/followers/''"]').click ()


    time.sleep (5)