【问题标题】:Selenium won't copy text to the clipboard when I send keys当我发送密钥时,Selenium 不会将文本复制到剪贴板
【发布时间】:2015-11-01 01:47:16
【问题描述】:

这是几周前的工作,我正在测试的网站没有改变任何东西。有时它会突出显示我需要的文本,但不会将其复制到剪贴板,有时它会起作用;现在很少,但每次我写它时它都能正常工作,而且没有做 time.sleep()。不过,我现在开始收到一条错误消息。

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

driver = webdriver.Firefox()
driver.get("http://www.speedyshare.com/")

driver.switch_to.frame(0)

upload_input = driver.find_element_by_css_selector(
"#selectfilebox input[type=file]")
upload_input.send_keys("/home/ro/Documents/Aaatrack.pdf")

upload_button = driver.find_element_by_link_text("Upload")
upload_button.click()

element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, "inpfilelink")))

elem = driver.find_element_by_class_name("inpfilelink")
elem.send_keys(Keys.CONTROL, "a")
time.sleep(3)
elem.send_keys(Keys.CONTROL, "c")

这是我有时会遇到的错误

Traceback (most recent call last):

  File "file wrap.py", line 27, in <module>

    elem.send_keys(Keys.CONTROL, "a")

  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webelement.py", line 328, in send_keys

    self._execute(Command.SEND_KEYS_TO_ELEMENT, {'value': typing})

  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webelement.py", line 454, in _execute

    return self._parent.execute(command, params)

  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 201, in execute

    self.error_handler.check_response(response)

  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 181, in check_response

    raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with

Stacktrace:

    at fxdriver.preconditions.visible (file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command-processor.js:9981)

    at DelayedCommand.prototype.checkPreconditions_ (file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command-processor.js:12517)

    at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command-processor.js:12534)

    at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command-processor.js:12539)

    at DelayedCommand.prototype.execute/< (file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command-processor.js:12481)

我已经用 firebug 检查了该元素,它仍然存在同名。

【问题讨论】:

  • 查看更改后的答案!

标签: python selenium


【解决方案1】:

Problems happens because when you hover over the Download link, an alert pops up and shows 立即按 CTRL + C 复制到剪贴板

对我来说,下面的代码非常棒!-

它打印上传文档的网络共享链接并将复制的链接粘贴到下面的文本区域//*[@id='linklisttextarea']。所以它变成了四倍!

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

driver = webdriver.Firefox()
driver.get("http://www.speedyshare.com/")
driver.maximize_window()
driver.switch_to.frame(0)

upload_input = driver.find_element_by_css_selector(
"#selectfilebox input[type=file]")
upload_input.send_keys("C:\abc.pdf")

upload_button = driver.find_element_by_link_text("Upload")
upload_button.click()

element = WebDriverWait(driver, 100).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='linklisttextarea']")))

elem = driver.find_element_by_xpath("//td[contains(text(),'Download Link:')]/following-sibling::td[1]/input")
share_lnk =elem.get_attribute('value')
print share_lnk
lnk = driver.find_element_by_xpath("//input[@class='inpfilelink']")
print "Your web linkk is %s"%(lnk.get_attribute('value'))
txt = driver.find_element_by_xpath("//*[@id='linklisttextarea']")
txt.send_keys(share_lnk)
txt.send_keys(share_lnk)
txt.send_keys(share_lnk)
txt.send_keys(share_lnk)
driver.quit()

【讨论】:

    猜你喜欢
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 2013-05-14
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多