【问题标题】:Unclickable button in selenium硒中不可点击的按钮
【发布时间】:2021-12-13 08:05:17
【问题描述】:
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(r'chromedriver.exe', options=chrome_options)
url = 'https://rarible.com/connect'
b = 1

def main():
    driver.get(url)
    input('Login..(Press ENTER when finsihed)')
    sleep(1)
    while driver.current_url == "https://rarible.com/":
        ts_href = '/html/body/div[1]/div[2]/div[2]/div[2]/div/div/div/div[4]/div[2]/div/div[1]/div[1]/div/div/div[' \
                  '1]/div[1]/div/div[3]/a'
        href = driver.find_element(By.XPATH, ts_href).get_attribute('href')
        driver.get(href)
        sleep(2)
        followers = '/html/body/div/div[2]/div[2]/div[2]/div[2]/div/div/div/div[1]/div[5]/div/button[1]/span[2]'
        driver.find_element(By.XPATH, followers).click()
        sleep(3)

        # buttons = driver.find_elements(By.XPATH, '//button[normalize-space()="Follow"]')
        def butts():
            global b
            fbtn = f'/html/body/div/div[1]/div/div[2]/div/div[2]/div/div/div/div[{b}]/div/div/div[3]/button'
            buttons = driver.find_element(By.XPATH, fbtn)
            print(f'BUTTON {b} TEXT (FOLLOW/UNFOLLOW): {buttons.text}')
            if buttons.text == "Follow":
                buttons.click()
                b += 1
                sleep(1)
                butts()
            elif buttons.text == "Unfollow":
                b += 1
                butts()

        butts()
        print('All set here, onto the next one...')
    else:
        driver.get('https://rarible.com/')


if __name__ == '__main__':
    main()

我无法让它点击关注按钮。 我找不到他们隐藏的 iframe,或者任何其他类型的 javascript voodoo 正在完成,但我不是最有经验的。这就是我来找你寻求指导的原因。

【问题讨论】:

  • 看这里:stackoverflow.com/questions/44834358/… 你首先需要切换到 iframe,然后再尝试点击其中的任何内容。
  • 只是一个更新,仍然在这里挣扎..我已经转而尝试 firefox/geckodriver,我尝试了全屏,寻找覆盖或任何其他障碍物,搜索我可能需要输入的 iframe ..这里没有什么对我有用。

标签: python html selenium selenium-webdriver


【解决方案1】:

你定义追随者的那行不适合我,所以我把它改成了 follower = '//button[@datamarker="root/appPage/address/profile/followingLinks/followers"]'

试图弄清楚如何让 butts() 循环运行,但我在 rarible 上没有任何追随者,所以很难测试。但是,将这些代码行放在 "if buttons.text == "Follow": before butts() 再次调用之前可能会起作用。 scroll_div = driver.find_element(By.XPATH, '/html/body/div/div[1]/div/div[2]/div/div[2]/div/div/div') scroll_div.send_keys(Keys.ARROW_DOWN)

它实际上不是 iframe。该解决方案与滚动关注按钮有关

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 2019-11-13
    • 2021-08-19
    相关资源
    最近更新 更多