我正在尝试波纹管代码,但总是返回真值。
if(updatebuton_status=="true"){
Thread.sleep(timmer*3);
//click on the update button
//ieDriver.findElement(By.xpath("html/body/div[1]/div/div/div/div[3]/div/div[1]/div/div/table/tbody/tr/td/table/tbody/tr/td[3]/div/div/div[2]/div[3]/div/div/div/div[2]/div/div[2]/div[2]/div/div/div[3]/div[2]/div/div/div/div[3]/div/div/div/div/div/div[2]/div[1]/div/div/div/div/table[1]/tbody/tr/td/table/tbody/tr/td[3]/span/table/tbody/tr[2]/td[2]")).click();
ieDriver.findElement(By.xpath("/html/body/div[1]/div/div/div/div[3]/div/div[1]/div/div/table/tbody/tr/td/table/tbody/tr/td[3]/div/div/div[2]/div[3]/div/div/div/div[2]/div/div[2]/div[2]/div/div/div[3]/div[2]/div/div/div/div[3]/div/div/div/div/div/div[2]/div[1]/div/div/div/div/table[1]/tbody/tr/td/table/tbody/tr/td[1]/span/table/tbody/tr[2]/td[2]")).click();
}else{
Thread.sleep(timmer*3);
//click on the Add button
ieDriver.findElement(By.xpath("/html/body/div[1]/div/div/div/div[3]/div/div[1]/div/div/table/tbody/tr/td/table/tbody/tr/td[3]/div/div/div[2]/div[3]/div/div/div/div[2]/div/div[2]/div[2]/div/div/div[3]/div[2]/div/div/div/div[3]/div/div/div/div/div/div[2]/div[1]/div/div/div/div/table[1]/tbody/tr/td/table/tbody/tr/td[1]/span/table/tbody/tr[2]/td[2]")).click();
}
答案 0 :(得分:0)
我觉得在某个地方你做错了,因为var vmBlock = function(label) {
var self = this;
self.text = label;
self.color = ko.observable('grey');
}
var vm = function() {
var self = this;
self.isSelecting = false;
self.blocks = [new vmBlock('a'), new vmBlock('b'), new vmBlock('c')];
self.select = function(block) {
block.color("red");
};
self.startTouch = function(data, event) {
self.isSelecting = true;
};
self.endTouch = function(data, event) {
self.isSelecting = false;
};
self.touch = function(data, event) {
if (!self.isSelecting) return;
var x = event.touches[0].clientX;
var y = event.touches[0].clientY;
var target = document.elementFromPoint(x, y);
var vm = ko.dataFor(target);
if (vm && vm.color) self.select(vm);
}
};
ko.applyBindings(new vm());
太长,建议使用.block {
display: inline-block;
width: 100px;
height: 100px;
margin: 6px;
}
。如果您的元素有<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div class="container" data-bind="foreach: blocks, event: {
touchstart: startTouch,
touchend: endTouch,
touchmove: touch
}">
<div class="block" onselectstart="return false" data-bind="text: text, style:{ 'background-color' : color }">
</div>
</div>
,则直接使用
我不知道你是如何检查该元素的显示方式 使用以下方法来做同样的事情 -
xpath
<强>被修改强>
如果您的按钮ID是动态的,请使用以下relative xpath
来查找元素
id
像
boolean check= driver.findElement(By.id("tVLQur-btn")).isEnabled();
if(check) // if `check` returns true then go in if condition
{
driver.findElement(By.id("tVLQur-btn")).click();
}
else
{
// DO SOME OTHER FUNCTIONALITY
}
它会找到您的更新按钮并检查天气是否启用
答案 1 :(得分:0)
我至少相信如果你将这一行分成两个语句,一个是定位元素,另一个是检查它的启用状态,至少你会知道问题(最有可能)在于元素location,因为它将返回一个nul到web元素,isEnabled将返回一个空指针异常。如果没有可用的一致ID,总会有使用相对较短的xpath的方法。检查浏览器中是否有包含单词xpath的加载项,您会看到有各种各样的xpath帮助程序。检查元素选项是最安全的,至少在理论上是这样,但它并不总是最好的。