selenium(python)click()方法不适用于脚本,但适用于命令行

时间:2019-02-01 18:41:48

标签: javascript python python-3.x selenium selenium-chromedriver

我正在使用python 3硒,我想在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()

Dialog box not opening

dialog box opening

2 个答案:

答案 0 :(得分:0)

页面结构加载后,很可能会应用事件。 尝试等待,然后再尝试点击触发器:

import time
from playsound import playsound

Time = time.strftime('%H:%M')

with open('alarms.txt') as f:
    alarms = f.readlines()
    for alarm in alarms:
        alarm = alarm.rstrip('\n')
        while Time != alarm:
            print('The time is: ' + Time + '\n')
            Time = time.strftime('%H:%M')
            time.sleep(1)
            continue
        if Time == alarm:
            playsound('alarm.mp3')

编辑:我也浏览了该页面。该事件将在页面准备就绪后应用,并且他的ID为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

答案 1 :(得分:0)

尝试一下。这应该可行。

for

让我知道是否可行。