无法在Python Selenium中填充搜索字段



我正在尝试使用Python和Selenium (chromedriver)搜索www.oddschecker.com,但我正在努力用搜索词填充搜索字段。

下面的代码单击放大镜ok,但是send_keys语句没有填充展开的搜索框。

有人看到问题了吗?

driver.find_element_by_xpath('//*[@id="top-menu"]/li[8]/ul/li[1]/span/span').click()
sleep(5)
driver.find_element_by_xpath('/html/body/div[1]/header/div[1]/div/div[1]/div/ul/li[8]/ul/li[1]/div/div/div/form/fieldset/input').send_keys('Bicep')
  1. xpath如果是brittle,请使用相对xpath。看到下面。
  2. 使用explicit waits
  3. 关闭模式弹出窗口可能会出现,也可能不会出现,所以最好将它们包装在try和except块中。

代码:

driver = webdriver.Chrome(driver_path)
driver.maximize_window()
#driver.implicitly_wait(30)
wait = WebDriverWait(driver, 30)
driver.get("http://www.oddschecker.com/")
try:
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "span.js-close-class"))).click()
print('Clicked on close button if it appears')
except:
pass
wait.until(EC.element_to_be_clickable((By.XPATH, "//span[starts-with(@data-ng-click,'NavSearchCtrl')]"))).click()
search = wait.until(EC.visibility_of_element_located((By.ID, "search-input")))
search.send_keys('Bicep', Keys.RETURN)

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

最新更新