Метод selenium (python) click () не работает со скриптом, но работает с командной строкой - PullRequest
0 голосов
/ 01 февраля 2019

Я использую python 3 selenium и хочу войти на страницу https://zomato.com, но когда я пишу его в сценарии и запускаю его, кнопка входа в систему нажимается, но диалоговое окно не открывается Но когда я пишуэти операторы в командной строке (терминале) нажимаются, и диалоговое окно также открывается.Я пробовал с Chrome, а также Firefox

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait as wait
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
driver.get("https://www.zomato.com/")
login_btn_outer =driver.find_elements_by_xpath("//*@id='signin-link']")[0].click()

Диалоговое окно не открывается

Открытие диалогового окна

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Попробуйте это. Это должно сработать.

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    options = webdriver.ChromeOptions()
    options.add_argument("--start-maximized")
    options.add_argument('--disable-browser-side-navigation')
    driver = webdriver.Chrome(chrome_options=options, executable_path='D:/Java/TestChrome/lib/chromedriver.exe')
    driver.get("https://www.zomato.com/")
    element=WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, ".//*[@id='signin-link']")))
    element.click() 

Дайте мне знать, если это работает.

0 голосов
/ 01 февраля 2019

Скорее всего, события применяются после загрузки структуры страницы.Попробуйте подождать, прежде чем пытаться нажать триггер:

driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS)
driver.get("https://www.zomato.com/")
login_btn_outer =driver.find_elements_by_xpath("//*@id='signinlink']")[0].click()

РЕДАКТИРОВАТЬ: Я тоже взглянул на страницу.К событию применяется готовая страница публикации, и его идентификатор равен signin-link, а не signinlink, как у вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...