python - Selenium window_handles 不适用于 javascript 按钮
问题描述
我正在做一个硒项目。我需要单击 javascript 按钮并将我的新 url 保存在 selenium window_handles 中。我的代码如下
window_before = driver.window_handles[0]
driver.find_element_by_xpath("//*[@id]/div/div[3]/div/button").click()
window_after = driver.window_handles[1]
但我收到以下错误:
window_after = driver.window_handles[1]
IndexError: list index out of range
解决方案
它基本上是在同一个窗口而不是新窗口上加载数据。但是在搜索每个页面数据后,您会找到 5 个配置文件以查看我已经为您完成了包含公司详细信息的第一页。这是代码。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://locatr.cloudapps.cisco.com/WWChannels/LOCATR/openBasicSearch.do;jsessionid=8CDF9284D014CFF911CB8E6F81812619')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='searchLocationInput']"))).send_keys('China')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@class='ng-scope']//span[text()='CHINA']"))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID,"searchBtn"))).click()
buttons=WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,"button[action-type='viewProfileButton']")))
for i in range(len(buttons)):
buttons = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "button[action-type='viewProfileButton']")))
driver.execute_script("arguments[0].click();",buttons[i])
item=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.partnerAddressAlign"))).text
print(item)
time.sleep(2)
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"a[action-type='clickBackToResult']"))).click()
print("=======================================")
控制台输出:
5A, TOWER A, PACIFIC CENTURY PLACE, 2A GONG TI BEI LU, CHAOYANG DISTRICT, BEIJING
BEIJING, BEIJING 100027 CHINA
8032 Kms away
Gold Global Gold Master Specialized
Visit Partner Website
Show Additional Locations
=======================================
UNIT 1808, 18TH FLOOR CHINA WORLD TOWER 2
NO, 1 JIAN GUO MEN WAI AVENUE
BEIJING, BEIJING 100738 CHINA
8034 Kms away
Gold Global Gold
Visit Partner Website | Call
Show Additional Locations
=======================================
702 TOWER W3 ORIENTAL PLAZA
BEIJING, BEIJING 100738 CHINA
8032 Kms away
Gold Global Gold
Call
Show Additional Locations
=======================================
Dimension Data House
Building 2,Waterfront Business Park
Fleet Road
Fleet, HAMPSHIRE GU51 3QT UNITED KINGDOM
282 Kms away
Gold Global Gold Master Specialized Customer Experience Specialized
Visit Partner Website | Call
Show Additional Locations
=======================================
110 BUCKINGHAM AVENUE
SLOUGH, BERKSHIRE SL1 4PF UNITED KINGDOM
259 Kms away
Gold Global Gold Customer Experience Specialized
Visit Partner Website | Call
Show Additional Locations
=======================================
推荐阅读
- ios - 无法将滚动视图添加到现有视图
- mysql - “not regexp '^[aeiou].*[aeiou]$'” 是如何工作的?
- python - PermissionError: [Error13] 使用 python flask 和 wsgi 在目录中写入访问权限
- javascript - 侧边栏没有在 vue.js #app 元素内折叠(sb-admin-2)
- javascript - 成功发布请求后的 http-proxy-middleware econnreset 错误
- python - not able to find tfjs-node bindings
- html - 执行包含在变量中的 HTML 代码
- android - Android-无法将 SVG 添加到导航抽屉图标
- laravel - 为什么缺少 [Route: pesquisaavan] 所需的参数
- java - 以文件名末尾的增量保存图像文件