У меня вообще проблема с нажатием в Chromedriver, когда код запускается Python.Этот код используется в скрипте:
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
driver.get("https://www.marktplaats.nl/")
cook_button = WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH, "//form[@method='post']/input[@type='submit']"))).click()
Это просто время ожидания, дающее "NoSuchElementException".Но если я помещаю эти строки вручную в оболочку, она щелкает как обычно.Для чего это стоит, я использую последние 2.40 Chromedriver и Chrome v67.Запуск без головы не имеет никакого значения. EDIT Программа фактически прерывается после третьей команды, когда она пытается найти элемент, который не существует, потому что щелчок не был завершен
driver.get(master_link) # get the first page
wait_by_class("search-results-table")
page_2_el = driver.find_element_by_xpath("//span[@id='pagination-pages']/a[contains(@data-ga-track-event, 'gination')]")
Таким образом, команда page_2_el выдает это исключение, но только потому, что предыдущий щелчок не был успешно завершен, чтобы удалить предупреждение о файлах cookie.И я уверен, что поиск по xpath хорош, потому что он работает с Geckodriver в Firefox, но не будет делать это здесь с Chromedriver.
EDIT2 Смотрите видео об ошибке здесь https://streamable.com/tv7w4Обратите внимание, как он немного вздрагивает, посмотрите, когда он пишет на консоли «до щелчка» и «после щелчка»
РЕШЕНИЕ Заменено
cook_button = WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH, "//form[@method='post']/input[@type='submit']"))).click()
С
N_click_attempts = 0
while 1:
if N_click_attempts == 10:
print "Something is wrong. "
break
print "Try to click."
N_click_attempts = N_click_attempts+1
try:
cook_button = WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH, "//form[@method='post']/input[@type='submit']"))).click()
time.sleep(2.0)
except:
time.sleep(2.0)
break
Похоже, что щелчок завершен.У меня есть другие щелчки в скрипте, и они отлично работают с element.click (), по некоторым причинам это было проблематично.