我正在使用下面的显式等待来检查元素是否可点击.
WebDriverWait(driver, 30).until(
expected_conditions.element_to_be_clickable((By.CSS_SELECTOR, "#search")))
Run Code Online (Sandbox Code Playgroud)
但我得到错误
<class 'selenium.common.exceptions.WebDriverException'>
Message: The command 'GET /session/.../displayed' was not found.
Run Code Online (Sandbox Code Playgroud)
如果我使用time.sleep()它工作正常而不是explicir等待它工作正常.我已经初始化了safari驱动程序
from selenium.webdriver import Safari
driver = Safari()
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪
File "/Users/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/support/wait.py", line 71, in until
value = method(self._driver)
File "/Users/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/support/expected_conditions.py", line 283, in __call__
element = visibility_of_element_located(self.locator)(driver)
File "/Users/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/support/expected_conditions.py", line 127, in __call__
return _element_if_visible(_find_element(driver, self.locator))
File "/Users/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/support/expected_conditions.py", line 147, in _element_if_visible
return element if element.is_displayed() == visibility else False
File "/Users/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/webelement.py", line 490, in is_displayed
return self._execute(Command.IS_ELEMENT_DISPLAYED)['value']
File "/Users/Library/Python/2.7/lib/python/site-packages/selenium/webdriver/remote/webelement.py", line 628, …Run Code Online (Sandbox Code Playgroud) 我想用扩展程序启动浏览器.在chrome中,我可以使用chromeOptions,如下面的代码示例所示.Firefox以类似的方式工作.
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
Run Code Online (Sandbox Code Playgroud)
但是在Safari中没有addExtensions方法.使用Safari执行此操作的正确方法是什么?
safari selenium safari-extension selenium-webdriver safaridriver
我在mac上运行我的量角器测试时遇到以下错误
Failed to connect to SafariDriver after 10082 ms
Build info: version: '2.53.1', revision: 'a36b8b1',
os.arch: 'x86_64', os.version: '10.12.2', java.version: '1.8.0_101'
Driver info: driver.version: SafariDriver
Run Code Online (Sandbox Code Playgroud)
能力:
name: 'Safari',
browserName: 'safari',
logName: 'Safari',
shardTestFiles: true,
maxInstances: 2
Run Code Online (Sandbox Code Playgroud)
我们需要一个特定的safari驱动程序吗?如果是,我可以从哪里获取它以及在.conf文件中声明的位置.
谢谢!
我正在使用 Selenium RemoteWebDriver 在远程 MacBook 上运行用 Java 编写的测试。我使用以下方法最大化浏览器窗口:
driver.manage().window().maximize();
Run Code Online (Sandbox Code Playgroud)
这在 Chrome、Firefox 和 IE11 上 100% 都有效。但是对于 Safari,这似乎有 30% 的时间会失败。我想也许 Safari 可能存在一些额外的同步问题,所以我尝试了:
Thred.sleep(10*1000);
driver.manage().window().maximize();
Thred.sleep(10*1000);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这没有帮助。我收到错误消息:
TimeoutException:等待响应命令“maximizeWindow”超时
有谁知道如何解决这个问题?
编辑:因为它可能很重要,这里是我用来创建驱动程序的 URL 和功能:
DesiredCapabilities caps = DesiredCapabilities.safari();
LoggingPreferences logPrefs;
logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
RemoteWebDriver driver= new RemoteWebDriver(new URL("http://serverIP/wd/hub"), caps)
Run Code Online (Sandbox Code Playgroud) 在 Safari 10.1 中尝试将文本框的值设置为空白时出现此错误。
使用 WebdriverIO:4.6.2
场景:文本框中已有文本。必须将该文本框设为空白才能重置搜索。
代码片段:
$(elementSelector).setValue('');
browser.waitUntil(() =>{
//Some conditions to meet after reset
});
Run Code Online (Sandbox Code Playgroud)
错误:
An unknown server-side error occurred while processing the command. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 11 milliseconds
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700'
System info: host: 'mac-185-44-130-79.browserstack.com', ip: '185.44.130.79', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.5', java.version: '1.8.0_51'
Driver info: org.openqa.selenium.safari.SafariDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, databaseEnabled=true, handlesAlerts=true, version=12604.1.22, cleanSession=true, …Run Code Online (Sandbox Code Playgroud) 我想使用Safari作为python的浏览器,代码相当简单:
from selenium import webdriver
driver = webdriver.Safari()
url = 'https://www.gmail.com/'
driver.get(url)
Run Code Online (Sandbox Code Playgroud)
我使用的是最新版本的Safari,11.0.3,
在首选项扩展中,我安装了WebDriver,
在菜单开发中,我启用了"允许远程自动化".
我正在使用python 3.5,selenium 3.10.0
在运行上面的代码时,我收到以下错误消息:
Traceback (most recent call last):
File "/Users/hwang/Documents/Lumi_personal/Coding/sandbox/testSelenium.py", line 2, in <module>
driver = webdriver.Safari()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/safari/webdriver.py", line 49, in __init__
self.service.start()
AttributeError: 'WebDriver' object has no attribute 'service'
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!提前致谢!
我已经成功安装了safari驱动程序的safari开发人员证书。我已经建立并添加到Safari扩展程序构建器中。预备步骤已完成。但是,当我运行Selenium脚本时,Safari服务器在端口上启动,然后在Eclipse控制台中出现以下错误,如下所示:
Oct 27, 2014 3:49:37 PM org.openqa.selenium.safari.SafariDriverServer start
INFO: Server started on port 22131
java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.openqa.selenium.safari.SafariDriverCommandExecutor
at org.openqa.selenium.safari.SafariDriverCommandExecutor.start(SafariDriverCommandExecutor.java:99)
at org.openqa.selenium.safari.SafariDriver.startClient(SafariDriver.java:115)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:115)
at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:101)
at org.openqa.selenium.safari.SafariDriver.<init>(SafariDriver.java:94)
Run Code Online (Sandbox Code Playgroud)
Safari浏览器打开,提示错误“ Safari无法找到文件”
任何帮助将不胜感激
Safari 10.0.1 macOS Sierra
运行Codeception命令时:
$I->waitForElementVisible(['css' => 'input[type=text][id=UserUsername]'], 30);
Run Code Online (Sandbox Code Playgroud)
在使用Selenium 3.0.1的Safari验收测试中,我收到错误消息.失败时拍摄的屏幕截图清楚地显示了相关元素.Firefox和Chrome中的相同测试/命令都是成功的.错误:
Screenshot saved to /Applications/MAMP/htdocs/AutomatedTests/tests/_output/debug/FAILED1479307207.png
Unable to retrieve Selenium logs : The command 'GET /session/9BC56414-8934-4315-9293-B6E99720E318/log/types' is not implemented.
Command duration or timeout: 3 milliseconds
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700'
System info: host: 'Cosettes-MacBook-Pro.local', ip: '10.0.1.75', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.1', java.version: '1.8.0_101'
Driver info: org.openqa.selenium.safari.SafariDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, databaseEnabled=true, handlesAlerts=true, version=12602.2.14.0.5, cleanSession=true, platform=MAC, nativeEvents=true, locationContextEnabled=false, webStorageEnabled=true, browserName=safari, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 9BC56414-8934-4315-9293-B6E99720E318 …Run Code Online (Sandbox Code Playgroud) safaridriver ×9
selenium ×7
safari ×6
python ×2
automation ×1
codeception ×1
java ×1
protractor ×1
python-3.x ×1
selenium3 ×1
webdriver-io ×1