现在已经为此苦苦挣扎了一段时间,我正在努力解决问题。为什么第一个代码不起作用?但是第二个呢?
'''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()'''
我知道第二种方法不满意,但我看不出为什么顶部方法不起作用?
您可以尝试使用 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
。