python selenium send_keys控件,'c'未复制实际文本

mkh04yzy  于 2022-11-24  发布在  Python
关注(0)|答案(5)|浏览(258)

我成功地在网页中突出显示了该部分,但是send_keys,.send_keys(Keys.CONTROL, "c")并没有将要复制的文本放在剪贴板中,只有我手动复制的最后一个文本在剪贴板中:

from selenium import webdriver 

from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 

driver.get("http://www.somesite.com") 

driver.find_element_by_id("some id").send_keys(Keys.CONTROL, "a") #this successfully highlights section I need to copy 

elem.send_keys(Keys.CONTROL, "c") # this does not actually copy text**

然后我尝试使用Firefox的编辑菜单来选择所有和复制文本,但也没有工作,也找不到任何在线帮助,除了可能提到一个bug(尝试旧版本的Firefox,但没有解决问题).有什么想法吗?

eufgjt7s

eufgjt7s1#

请尝试使用以下代码:
包含下面的标题以导入ActionChains

from selenium.webdriver.common.action_chains import ActionChains

actions = ActionChains(driver)

actions.key_down(Keys.CONTROL)

actions.send_keys("c")

actions.key_up(Keys.CONTROL)
brccelvz

brccelvz2#

试试看:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox()
driver.get("http://www.somesite.com")  
driver.find_element_by_id("some id").send_keys(Keys.CONTROL, "a")
driver.find_element_by_id("some id").send_keys(Keys.CONTROL, "c")
q9yhzks0

q9yhzks03#

这一个实际上工作,它是更新到这个日期,也测试了几次。

from selenium.webdriver.common.action_chains import ActionChains

def clear_text(self):
    webdriver.ActionChains(self.driver).key_down(Keys.CONTROL).perform()
    webdriver.ActionChains(self.driver).send_keys("a").perform()
    webdriver.ActionChains(self.driver).key_up(Keys.CONTROL).perform()
    webdriver.ActionChains(self.driver).send_keys(Keys.DELETE).perform()

动作链是非常有用的,不要忘记.perform()每个动作
在课堂上使用此函数:

text_box.click() #or other clicking function so you are actually typing
self.clear_text()  # Because it stands by itself
eanckbw9

eanckbw94#

您没有定义“埃利姆”是什么try:

elim = driver.find_element_by_id("some_id")
elim.send_keys(Keys.CONTROL, "a")
elim.send_keys(Keys.CONTROL, "c")
mznpcxlj

mznpcxlj5#

NameError:未定义名称'Keys'
这意味着您必须在Selenium项目中导入密钥。

from selenium.webdriver.common.keys import Keys

相关问题