随机点击按钮

时间:2018-06-01 20:34:19

标签: python selenium

field(0):  {"idTweet":"943959778006589441"
field(1):  "text":"Lorem ipsum"
field(2):  "dolor sit"
field(3):  "amet"
field(4):  "..."}

所以这段代码显示了一个按钮列表,我需要一个代码,让我从最后一个按钮点击到第一个按钮,在我写的代码中,我通过css_selector发现按钮,它对所有按钮都相同。 我写的代码很好,但它从第一个按钮点击到最后一个按钮,我不知道如何反转它。

我写的代码就是这个

    <ul>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
      <li>
        <span class="_1OSdk">
          <button class="_5f5mN    -fzfL    KUBKM      yZn4P   ">Segui già</button>
        </span>
      </li>
    </ul>

我有一个显示所有这些按钮的表格,我需要将代码从最后一个按钮点击到第一个按钮。 此代码单击从第一个按钮到最后一个按钮,所以我需要的反向。 (在我点击按钮时我必须运行此代码的网站上它会改变css_selector,所以我写的代码不会停在第一个元素上)

2 个答案:

答案 0 :(得分:0)

我创建了一个片段,为每个按钮添加了一个onclick-event。如果单击,脚本将检查单击后面的按钮数量,并返回警报中的数字。 我实际上不知道你是如何在JS中使用Python的,因此我只使用普通的旧JS。

fiddle

// code from the fiddle
var buttons = document.getElementsByClassName('KUBKM');
for (var i = 0, len = buttons.length; i < len; i++) {
    buttons[i].onclick = function(e){
        var li = e.target.parentNode.parentNode;
        var i = 0;
        while(li != null){
            li = li.nextSibling;
            if(li != null){
                if(li.tagName == 'LI'){
                    i++;
                }
            }
        }
        //console.log('Button '+i+' was clicked');
        alert('Button '+i+' was clicked');
    }
}

答案 1 :(得分:0)

现在我理解你的问题了:你正试图获取这些按钮并从最后一个按钮点击它们,直到到达第一个按钮。
我认为这个片段应该有效:

#SEARCH FOR THE BUTTON THAT IT HAS TO CLICK

for button in reversed(driver.find_elements_by_css_selector("._5f5mN.-fzfL.KUBKM.yZn4P")):
    button.click()
    time.sleep(5)

# and the else-clause shouldn't be needed anymore