Python 硒元';发送密钥时,不要将文本复制到剪贴板
这是工作了几个星期前,我测试的网站没有改变任何事情。有时它会突出显示我需要的文本,但它不会将其复制到剪贴板,有时它会工作;现在很少了,但每次我写它的时候它都能正常工作,而且没有时间。sleep()。不过,我现在开始收到一条错误消息Python 硒元';发送密钥时,不要将文本复制到剪贴板,python,selenium,Python,Selenium,这是工作了几个星期前,我测试的网站没有改变任何事情。有时它会突出显示我需要的文本,但它不会将其复制到剪贴板,有时它会工作;现在很少了,但每次我写它的时候它都能正常工作,而且没有时间。sleep()。不过,我现在开始收到一条错误消息 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from seleni
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)
回溯(最近一次呼叫最后一次):
文件“File wrap.py”,第27行,在
元素发送键(键控制,“a”)
文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/remote/webelement.py”,第328行,在send_键中
self._execute(Command.SEND_KEYS_TO_元素,{'value':键入})
文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/remote/webelement.py”,第454行,在
返回self.\u parent.execute(命令,参数)
文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/remote/webdriver.py”,执行中的第201行
self.error\u handler.check\u响应(响应)
文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/remote/errorhandler.py”,第181行,在check_响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.ElementNotVisibleException:消息:元素当前不可见,因此可能无法与之交互
堆栈跟踪:
在fxdriver.premissions.visible(file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command processor.js:9981)
在DelayedCommand.prototype.CheckPremissions\u(file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command processor.js:12517)
在DelayedCommand.prototype.executeInternal\uh处(file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command processor.js:12534)
在DelayedCommand.prototype.executeInternal\u(file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command processor.js:12539)
在DelayedCommand.prototype.execute/<(file:///tmp/tmp8lWb_m/extensions/fxdriver@googlecode.com/components/command processor.js:12481)
我已经用firebug检查了该元素,但它仍然以相同的名称存在。
出现问题的原因是,当您将鼠标悬停在下载链接上时,会弹出一个警报,并显示按CTRL+C立即复制到剪贴板。
对我来说,下面的代码工作得非常好-
它打印上传文档的web共享链接,并将复制的链接粘贴到下面的文本区域/*[@id='linklistextarea']
。所以它变成了四倍
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()
出现问题的原因是,当您将鼠标悬停在下载链接上时,会弹出一个警报并显示
按CTRL+C立即复制到剪贴板
对我来说,下面的代码工作得非常好-
它打印上传文档的web共享链接,并将复制的链接粘贴到下面的文本区域/*[@id='linklistextarea']
。所以它变成了四倍
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()
请看更改后的答案!请看更改后的答案!