In python, Selenium keyboard Ctrl+v can be successfully implemented when debugging, but not when officially running
python source code below
from selenium import driver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
# 导入时间包
from time import sleep
# 导入Keys包(键盘控制)
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://www.csdn.net/')
# driver.get('https://blog.csdn.net/YON_dog')
sleep(1)
# 定位'会员中心'栏 find(找到) element(移动)
collect = driver.find_element(By.XPATH,'//*[@id="csdn-toolbar"]/div/div/div[3]/div/div[2]/a')
# 悬浮至'会员中心'标签处 move(移动) perform(执行)
ActionChains(driver).move_to_element(collect).perform()
sleep(1)
# 定位文本框并输入文本 send(发送) key(键)
driver.find_element(By.ID,'toolbar-search-input').send_keys('YON_dogs')
sleep(1)
# 模拟回车键进行跳转(输入内容后) ENTER(输入)
driver.find_element(By.ID,'toolbar-search-button').send_keys(Keys.ENTER)
sleep(1)
# 此时会打开一个新的页面,但代码并没有切换到最新页面中,所以标签定位会定位不到
# 获取打开的多个窗口句柄 handles(处理)
windows = driver.window_handles
# 切换到当前最新打开的窗口 switch(开关)
driver.switch_to.window(windows[-1])
sleep(1)
# 使用Backspace来删除一个字符 BACK_SPACE(退格)
driver.find_element(By.XPATH,'//*[@id="keyword"]').send_keys(Keys.BACK_SPACE)
sleep(1)
# Ctrl+A 全选输入框中的内容 CONTROL(控制)
driver.find_element(By.XPATH,'//*[@id="keyword"]').send_keys(Keys.CONTROL,'a')
sleep(1)
# Ctrl+C 复制输入框中的内容
driver.find_element(By.XPATH,'//*[@id="keyword"]').send_keys(Keys.CONTROL,'c')
sleep(1)
# Ctrl+V 粘贴输入框中的内容
driver.find_element(By.XPATH,'//*[@id="keyword"]').send_keys(Keys.CONTROL,'v')
sleep(1)
# 回车键
driver.find_element(By.XPATH,'//*[@id="keyword"]').send_keys(Keys.ENTER)
Here is a screenshot of debugging
page can show pasted successfully, and enter to search again with pasted content
But in the formal page paste failed, press enter again search is also to paste the previous content to search
May I ask why? How do you solve it?
0 Answer
No answer yet
这家伙很懒,什么都没留下...