【问题标题】:how to skip an element in a range loop?如何跳过范围循环中的元素?
【发布时间】:2021-03-31 18:44:58
【问题描述】:

我尝试在 Instagram 中使用 xpath 和 selenium 自动关注列表中的 30 个人,每个人都有相同的课程,除了我已经关注的他们。 当程序通过类自动跟随并获得一个我已经跟随它时,它会停止。 如果不是它正在搜索的课程,我该如何让程序跳过课程?

这就是它跟随人们的声明。

for i in range (1, 31):  
     browser.find_element_by_xpath("//button[@class='sqdOP  L3NKy   y3zKF     ']").click()
     print(i)

我已经尝试过了,但也行不通

def follower():
    for i in range (1, 31):
        try:
            browser.find_element_by_xpath("//button[@class='sqdOP  L3NKy   y3zKF     ']").click()
            print(i)
        except:
            continue

大家可以自己试试,别忘了修改登录信息(第12&13行)

from selenium import webdriver
from time import sleep

browser = webdriver.Chrome()

url = "https://www.instagram.com/"
browser.get(url)

sleep(1)
browser.find_element_by_xpath("/html/body/div[2]/div/div/div/div[2]/button[1]").click()
#Login
browser.find_element_by_xpath("/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[1]/div/label/input").send_keys("Username")
browser.find_element_by_xpath("/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[2]/div/label/input").send_keys("Password")
browser.find_element_by_xpath("/html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[3]/button").click()
sleep(3)

browser.find_element_by_xpath("/html/body/div[1]/section/main/div/div/div/div/button").click()
browser.find_element_by_xpath("/html/body/div[4]/div/div/div/div[3]/button[2]").click()
url = "https://www.instagram.com/scarlxrd/"
browser.get(url)
browser.find_element_by_xpath("/html/body/div[1]/section/main/div/div[3]/article/div/div/div[1]/div[1]/a/div/div[2]").click()#Bildwahl
sleep(1)
try: 
    browser.find_element_by_xpath("/html/body/div[5]/div[2]/div/article/div[3]/section[2]/div/div[2]/a").click()
except:
    browser.find_element_by_xpath("/html/body/div[5]/div[2]/div/article/div[3]/section[2]/div/div/a").click()
sleep(1)

for i in range (1, 31):
        try:
            browser.find_element_by_xpath("//button[@class='sqdOP  L3NKy   y3zKF     ']").click()
            print(i)

【问题讨论】:

    标签: python selenium class range


    【解决方案1】:

    你可以试试这样的:

    # Create a range that does not contain 50
    for i in [x for x in xrange(100) if x != 50]:
        print i
    
    # Create 2 ranges [0,49] and [51, 100] (Python 2)
    for i in range(50) + range(51, 100):
        print i
    
    # Create a iterator and skip 50
    xr = iter(xrange(100))
    for i in xr:
        print i
        if i == 49:
            next(xr)
    
    # Simply continue in the loop if the number is 50
    for i in range(100):
        if i == 50:
            continue
        print i
    

    请看Skip over a value in the range function in python

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 2012-03-12
      • 2012-03-02
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      相关资源
      最近更新 更多