没有这样的元素:无法找到元素(使用隐式等待后)

时间:2020-06-23 11:08:54

标签: python selenium selenium-webdriver selenium-chromedriver

因此,我已经看到许多有关此类错误的答案,并且实现了隐式等待,以便为按钮加载留出时间。我已经检查过了,它似乎不在iframe中。此外,当我通过交互式控制台运行相同的代码时,它实际上可以工作。 这是我的代码:

from selenium import webdriver
from time import sleep

class TinderBot():
    def __init__(self):
        self.driver = webdriver.Chrome()

    def login(self):
        self.driver.get('https://tinder.com')

        self.driver.implicitly_wait(3)

        fb_btn = self.driver.find_element_by_xpath('//*[@id="content"]/div/div[1]/div/div/main/div/div[2]/div[2]/div/div/span/div[2]/button')
        fb_btn.click()

bot = TinderBot()
bot.login()

2 个答案:

答案 0 :(得分:0)

我认为问题出在xpath而不是hidden_​​wait() 尝试给通用xpath这样的东西'// * [@ id =“ content”] // button'

def login(self):
    self.driver.get('https://tinder.com')
    
    self.driver.implicitly_wait(3)
    
    fb_btn = self.driver.find_element_by_xpath('//*[@id="content"]//button')
    fb_btn.click()

答案 1 :(得分:0)

所以我明白了,问题是当我去检查页面时,由于我的屏幕很小,因此html以及按钮的xpath都会改变。因此,当代码找到它时,它就不存在了。