Selenium无法定位元素,即使用xpath的搜索按钮

2024-09-27 00:17:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我找不到一个解决方案,如何使用seleniumxpath找到这个元素。其他网站上的其他按钮总是工作得很好。通常我会做的是,打开一个页面并检查元素,然后右键单击它并复制xpath。完成。在

但是这个网站,www.gsc.com.my(一家马来西亚电影院预订网站)。似乎找不到按钮。它是否受到另一个安全层的保护?在

enter image description here

让我们看看下面的代码

from selenium import webdriver

chromedriver_path = './chromedriver.exe'

driver = webdriver.Chrome(chromedriver_path)  
driver.get('https://www.gsc.com.my')


driver.find_element_by_xpath("""//*[@id="btnNext"]""").click()

错误消息:

^{pr2}$

Tags: pathcom元素网站mywwwdriver解决方案
3条回答

您可以尝试使用此css选择器:

div.container input#btnNext  

请注意,您需要先切换到iframe,因为复选按钮位于iframe中。在

切换到iframe:

^{pr2}$

以及点击检查按钮

wait = WebDriverWait(driver, 10)
check_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.container input#btnNext")))  
check_button.click()

因为有两个id为btnNext的元素,您必须使用索引指定其中哪一个元素,第一个元素为1,第二个元素为2。在

driver.find_element_by_xpath("""//*[@id="btnNext"][1]""").click()

按钮位于iframe内部,因此您需要在单击按钮之前切换到该框架:

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

driver.switch_to.frame('getQuickFilter_ctrl_ifrBox')

wait(driver, 10).until(EC.element_to_be_clickable((By.ID, "btnNext"))).click()

相关问题 更多 >

    热门问题