我正试图找到并点击Paytm“登录/注册”,使用
然而,webdriver似乎确实找到了元素,但不知何故它没有点击它。下面的Python代码运行良好,没有任何错误。还尝试了不同的定位技术(代码中有注释),但没有成功
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
def syncClick(driver, timeout, locatorType, locator):
try:
WebDriverWait(driver, timeout).until(EC.element_to_be_clickable((locatorType, locator))).click()
except TimeoutError as e:
print(e.args)
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://paytm.com/')
# syncClick(driver, 10, By.XPATH, '//div[text()="Log In/Sign Up"]')
# syncClick(driver, 10, By.CSS_SELECTOR, '#app > div > div.R-WO > div._3AxU > div._3huM > div._1Vt1 > div')
syncClick(driver, 10, By.CSS_SELECTOR, 'div._3ac-')
time.sleep(10)
driver.close()
我想你需要等到页面完全加载。您所指的元素首先出现在其他元素之前,因此javascript尚未准备好执行
我已尝试在调用
syncClick
函数之前等待找到的Digital Gold
文本欢迎来到StackOverflow!在检查了网页的HTML代码之后,我推断上述按钮的完整XPATH是
/html/body/div/div/div[2]/div[2]/div[3]/div[4]/div
。您可以在.find_element_by_xpath()
函数中使用此XPATH数据,如下所示:你只需稍等一下就可以加载页面了,所以在单击操作之前要添加时间
相关问题 更多 >
编程相关推荐