如何使用selenium python点击按钮

问题描述 投票:0回答:1

这是代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service

options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
path = 'C:/Users/chromedriver-win64/chromedriver.exe'

cService = Service(path)
driver = webdriver.Chrome(service = cService)

url = 'https://kavirtire.ir/esale/login'
driver.get(url)
search_box = driver.find_element(By.CLASS_NAME,'form-control')
search_box.click()
search_box.send_keys('2948608910')
#search_box.send_keys(Keys.ENTER)
frame = driver.find_elements(By.TAG_NAME, 'iframe')
driver.switch_to.frame(frame[0])
driver.find_element(By.CLASS_NAME, 'recaptcha-checkbox-border').click()
time.sleep(2)

button = driver.find_element(By.XPATH,"/html/body/div[1]/div/div/div/div[1]/div[2]/div/form/div[3]/button").click()
time.sleep(5)

错误:

引发异常类(消息,屏幕,堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:没有这样的 元素:无法定位元素:{“method”:“xpath”,“selector”:“ /html/body/div[1]/div/div/div/div[1]/div[2]/div/form/div[3]/button" (会话信息:chrome=123.0.6312.86)

谁能解决这个问题吗?

python selenium-webdriver
1个回答
0
投票

主要问题是你用这条线切换了你的驱动程序。并且您的登录按钮不在该框架中。

driver.switch_to.frame(frame[0])

因此,在处理验证码后,您需要切换回默认内容。这应该是工作。

frame = driver.find_elements(By.TAG_NAME, 'iframe')
driver.switch_to.frame(frame[0])
driver.find_element(By.CLASS_NAME, 'recaptcha-checkbox-border').click()
driver.switch_to.default_content()

欲了解更多信息。 你可以用

driver.find_element(By.CSS_SELECTOR,"btn .btn-success .float-start")
.

也可以使用

time.sleep
代替
WebDriverWait
。另一个建议是您不需要单击您的
search_box
您可以使用
send_keys()
功能而无需单击。

© www.soinside.com 2019 - 2024. All rights reserved.