我正在尝试使用python语言的selenium编写一个用于管理用户的网页的测试.在此页面中,有人可以为用户添加角色,如果在添加角色时存在角色,则会发出警报.我不知道警报是javascript警报还是网页的元素.我想自动检查是否存在警报,因为检查列表中的角色会浪费时间并且负载很大.我试过这个:
browser = webdriver.Firefox()
browser.get("url")
browser.find_the_element_by_id("add_button").click()
try:
alert = browser.switch_to_alert()
alert.accept()
print "alert accepted"
except:
print "no alert"
Run Code Online (Sandbox Code Playgroud)
但它没有用,我得到了"UnexpectedAlertPresentException".我也试过这个:
browser = webdriver.Firefox()
browser.get("url")
browser.find_the_element_by_id("add_button").click()
s = set(browser.window_handles)
s.remove(browser.current_window_handle)
browser.switch_to_window(s.pop())
Run Code Online (Sandbox Code Playgroud)
但我得到了同样的例外.此外,我尝试使用firebug访问警报以检查我是否可以访问其属性,但右键单击已禁用.即使在其他语言中,我也需要非常快速的解决方案.无论如何我能理解这种方法.我将不胜感激任何帮助.
我正在使用selenium webDriver为Web应用程序编写测试,并遇到了一个场景,当我尝试关闭浏览器时,我得到一个弹出窗口"你确定吗?页面要求你确认你要离开 - 输入的数据将会迷路了." 有2个按钮:保持页面和保持页面
如何点击这些按钮?
假设我在python中有一个类:
class TestClass(object):
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def print_args(self):
print arg1, arg2
Run Code Online (Sandbox Code Playgroud)
我想用来robotframework实现我的测试场景.我想从上面的类创建一个实例并调用它的方法.怎么做?我知道如何导入lib; 它应该是这样的:
Library TestClass
Run Code Online (Sandbox Code Playgroud)
我不知道如何从这个类初始化一个对象,并通过这个对象调用类方法.如果我想用python实现它,我会写一些像这样的代码:
import TestClass
test = TestClass('ARG1', 'ARG2')
test.print_args()
Run Code Online (Sandbox Code Playgroud)
现在,我想知道如何写这个robotframework.有帮助吗?
我有一个Dockerfile将实现FROM私人注册表的图像.我构建这个文件没有任何问题Docker version 1.12.6, build 78d1802和docker-compose version 1.8.0, build unknown,但在另一台机器,它有Docker version 17.06.1-ce, build 874a737和docker-compose version 1.16.1, build 6d1ac21,docker-compose build返回:
FROM my.private.gitlab.registry:port/image:tag
http://my.private.gitlab.registry:port/v2/docker/image/manifests/tag: denied: access forbidden
Run Code Online (Sandbox Code Playgroud)
docker pull my.private.gitlab.registry:port/image:tag 返回相同.
请注意,我试图获得my.private.registry:port/image:tag并且http://my.private.registry:port/v2/docker/image/manifests/tag已被捕获.
我在python中编写了一个简单的REST-ful Web服务器flask,本教程中包含以下步骤; 但是我在调用POST请求时遇到了问题.代码是:
@app.route('/todo/api/v1.0/tasks', methods=['POST'])
def create_task():
if not request.json or not 'title' in request.json:
abort(400)
task = {
'id': tasks[-1]['id'] + 1,
'title': request.json['title'],
'description': request.json.get('description', ""),
'done': False
}
tasks.append(task)
return jsonify({'task': task}), 201
Run Code Online (Sandbox Code Playgroud)
我POST使用curl上述页面中的示例发送请求:
curl -i -H "Content-Type: application/json" -X POST -d '{"title":"Read a book"}' http://127.0.0.1:5000/todo/api/v1.0/tasks
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误:
HTTP/1.0 400 BAD REQUEST
Content-Type: text/html
Content-Length: 187
Server: Werkzeug/0.11.10 Python/2.7.9
Date: Mon, 30 May 2016 09:05:52 GMT
<!DOCTYPE HTML …Run Code Online (Sandbox Code Playgroud) 我想检查数据库表中是否存在一行。我首先使用了这种方法:
type MyStruct struct {
ID uint32
Key string
Value string
}
var result MyStruct
err := db.
Where("id = ? AND `key` = ? AND `value` = 0", myID, myKey).
First(&result).
Error
if err != nil {
if err == gorm.ErrRecordNotFound {
logrus.Error("ErrRecordNotFound")
}
logrus.Errorf("Other DB error: %s", err.Error())
}
Run Code Online (Sandbox Code Playgroud)
但我想通过编写原始 SQL 来实现这一点。我尝试了以下操作:
var result bool
db.Raw("SELECT EXISTS(SELECT 1 FROM my_table WHERE id = ? AND `key` = ? AND `value` = ?)",
myID, myKey, "0").Scan(&result)
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
unsupported destination, …Run Code Online (Sandbox Code Playgroud) 我在python中使用selenium编写测试脚本.我有一个包含树视图对象的网页,如下所示:

我想遍历菜单转到所需的目录.正负表示的HTML代码如下:
<a onclick="changeTree('tree', 'close.gif', 'open.gif');">
<img id="someid" src="open.gif" />
</a>
Run Code Online (Sandbox Code Playgroud)
src图像的属性可以是open.gif或close.gif.
我可以通过简单地检查标签的src属性来检测天气有正负img.我也可以很容易地访问父标签,a通过使用.find_element_by_xpath("..").
问题是,我不能在没有进行点击操作img,也没有a标签.
我试过了webdriver.Actions(driver).move_to_element(el).click().perform(); 但它不起作用.
我想我应该提到访问元素没有问题,因为我可以打印所有属性; 我只是无法对它们执行操作.有帮助吗?
编辑1:
这是用于折叠和展开树的js代码:
function changeTree(tree, image1, image2) {
if (!isTreeviewLocked(tree)) {
var image = document.getElementById("treeViewImage" + tree);
if (image.src.indexOf(image1)!=-1) {
image.src = image2;
} else {
image.src = image1;
}
if (document.getElementById("treeView" + tree).innerHTML == "") {
return true;
} else {
changeMenu("treeView" + …Run Code Online (Sandbox Code Playgroud) 我目前无法刷新整个jstree; 初始树加载工作正常,刷新子节点也按预期工作,但如果数据在根节点中发生更改,即使数据已更改并且已对服务器进行调用,树也不会刷新.
我将尝试解释jstree的设置.
全局变量
var levelType;
Run Code Online (Sandbox Code Playgroud)
树设置
$("#explorer").jstree({
plugins: ["core", "ui", "themes", "json_data", "types"],
themes: {
theme: "default",
dots: false,
url: url = '@Url.Content("~/Content/jstree/default/style.css")'
},
json_data: {
ajax: {
cache: false,
url: function (node) {
var nodeId = "";
var url = "";
if (node == -1) {
url = '@Url.Action("GetSites", "Site")';
} else if ($(node).attr("rel") == "station") {
url = '@Url.Action("GetInspections", "Inspection")' + '/' + $(node).attr("id");
}
return url;
},
success: function (metaData, textStatus, jqXhr) {
if (levelType == …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个 Java 应用程序并使用 docker 制作一个包。这个构建需要一个 maven 存储库,我不想包含在图像中,因为它非常大。我想尝试使用卷并将我的本地 Maven 存储库挂载到映像中的 Maven 存储库。我使用apt-get install -y maven是为了让 maven 可用,但我.m2在图像中找不到目录$HOME。
我用ls -la $HOME,ls -la和ls -la /root找到maven home,但那里没有.m2目录。
编辑 1:
我有这些行Dockerfile:
FROM ubuntu
MAINTAINER Zeinab Abbasimazar
# Install and configure required packages
RUN apt-get update; \
apt-get install -y --no-install-recommends apt-utils; \
apt-get install -y dialog; \
apt-get install -y wget unzip curl maven; \
mkdir $HOME/.m2/; \
ls …Run Code Online (Sandbox Code Playgroud) 我有一些环境变量,我想在docker-compose配置和Dockerfile. 我有一个命名的环境文件.env,以便在docker-compose文件中使用它们(我用于此问题的解决方案);但是这些环境变量在 node 的Dockerfile. 考虑JMX_PORT,WS_PORT和IP作为在我的.env文件中定义的变量;我echo为他们每个人都放了一个,Dockerfile以检查它们是否传递给它。
我试图放入节点.env的env_file部分:
version: "2"
services:
mynode:
build:
context: .
dockerfile: Dockerfile-mynode
env_file:
- .env
ports:
- "${JMX_PORT}:${JMX_PORT}"
- "${WS_PORT}:${WS_PORT}"
Run Code Online (Sandbox Code Playgroud)
我也试过:
version: "2"
services:
mynode:
build:
context: .
dockerfile: Dockerfile-mynode
environment:
- IP=${IP}
- JMX_PORT=${JMX_PORT}
- WS_PORT=${WS_PORT}
ports:
- "${JMX_PORT}:${JMX_PORT}"
- "${WS_PORT}:${WS_PORT}"
Run Code Online (Sandbox Code Playgroud)
并稍作改动:
version: "2"
services:
mynode:
build:
context: …Run Code Online (Sandbox Code Playgroud) environment environment-variables docker dockerfile docker-compose