python-3.x - 使用 Selenium Python 3 查找按钮元素
问题描述
我对 Selenium 模块很陌生。我尝试单击此站点https://www.jumbomail.me/he/中的“המשך”按钮 。这是我的代码:
import time,selenium
from selenium import webdriver
PATH = r'C:\Program Files (x86)\chrome\chromedriver.exe'
driver = webdriver.Chrome(PATH)
driver.get('https://www.jumbomail.me/he/')
input_fname=driver.find_element_by_id("tokenfield-tokenfield")
input_fname.send_keys('nareom@reg-ujmv.com')
input_fname = driver.find_element_by_class_name("send-button jm-button ng-binding ng- scope")
这是网页中的 HTML 代码:
<button type="submit" ng-click="vm.submit(false)" class="send-button jm-button ng-
binding ng-scope" ga-click-event="['Send Form', 'Click', 'Next - Submit button']"
data-uw-styling-context="true"> המשך
</button>
当我运行它时,我收到此错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable
to locate element: {"method":"css selector","selector":".send-button jm-button ng-
binding ng-scope"}
解决方案
直接点击implicit
还是Explicit wait
不行,需要JS
干预。
完整代码:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
PATH = r'C:\Program Files (x86)\chrome\chromedriver.exe'
driver = webdriver.Chrome(PATH)
driver.maximize_window()
driver.get("https://www.jumbomail.me/he/")
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='סגירה']"))).click()
button = driver.find_element_by_css_selector("button[ng-click='vm.submit(false)']")
driver.execute_script("arguments[0].click();", button)
推荐阅读
- python - 无法清除 dict:keys 中的空格和 \n 字符
- javascript - 全局对象 `window` 和 `document` 的类型是什么?
- sql - 收到错误“回滚事务请求没有相应的开始事务”
- html - 从空的类标签 (HTML) 中抓取
- crud - CakePHP3 CRUD API 和 API 路由
- java - 用单独的颜色显示国家
- r - 在 R 中分离数据
- javascript - JS:chrome 开发工具中对 JS 文件的更改未反映
- android - Glide 和 Picasso 无法从 YouTube 加载图像
- php - 是否可以将函数存储在数组中并根据 if 语句结果调用它们?