【发布时间】: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 检查了该元素,它仍然存在同名。
【问题讨论】:
-
查看更改后的答案!