无法让此Selenium Web驱动程序等待。但为什么我可以睡?

问题描述 投票:0回答:1

现在已经为此苦苦挣扎了一段时间,我正在努力解决问题。为什么第一个代码不起作用?但是第二个呢?

'''from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time


driver = webdriver.Chrome(executable_path='/Users/jackrossanderson/Desktop/chromedriver')
driver.get('https://www.url.Iwanttoscrape.com')
search = driver.find_element_by_name('searchbar')
search.send_keys("hometown")
search.send_keys(Keys.RETURN)




try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.Class_Name, 'button i want to click'))
    )
    element.click()

    driver.back()
except:
    print(error)'''

'''from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time


driver = webdriver.Chrome(executable_path='/Users/jackrossanderson/Desktop/chromedriver')
driver.get('https://www.urlIwanttoscrape')
search = driver.find_element_by_name('searchbar')
search.send_keys("home town")
search.send_keys(Keys.RETURN)

time.sleep(12)
element = driver.find_element_by_class_name('button I want to press')

element.click()
driver.back()'''

我知道第二种方法不满意,但我看不出为什么顶部方法不起作用?

python-3.x selenium-webdriver
1个回答
0
投票

您可以尝试使用 element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "gNO89b")))使驱动程序等待,然后根据类名称单击]

[用法,如element_to_be_clickable所述,建议使用here,因为element_to_be_clickable描述定义它不一定表示该元素可见或可点击。

还请检查外壳是否使用了By.CLASS_NAME

© www.soinside.com 2019 - 2024. All rights reserved.