我是整个 Robotframework 和 Selenium2Library 的新手,我遇到了问题。
我有两个 div:rasterContainer和anlageContainer。它们具有相同的 x 和 y 偏移。anlageContainer的z-offset 为 3,rasterContainer为 0。anlageContainer位于 rasterContainer 的顶部。这两个构建了一个时间栏。 anlageContainer只有一个 id,而rasterContainer包含许多其他 div,每个 div 都有一个 id。如果您将鼠标悬停在这些 div 上,则rasterContainer 会显示时间。如果你点击那里,你只需点击anlageContainer和其他一些方法计算偏移量以获取时间并在文本框中打开一个带有该时间的窗口。
我想做的事:
我想将鼠标移动到 rasterContainer 的一个元素上,然后单击anlageContainer上的相同位置。
我试过的:
我开始用python编写自己的库。我只有一种方法可以获取 Selenium2Library 的实例、鼠标位置的垂直值(鼠标位于anlageContainer顶部)和rasterContainer元素的垂直值。
def click_on_element(self, vertEl, vertMo, se2lib):
v = vertEl - vertMo
#Get Webdriver
driver = se2lib._current_browser()
#ActionChains instance
ac = webdriver.ActionChains(driver)
ac.move_by_offset(0, v)
ac.click().perform()
return "On my way"
使用move_by_offset:窗口打开但时间错误(07:00)。我想要09:30。
我也试过:
#Get Element
elmfinder = ElementFinder()
elm = elmfinder.find(driver, "5_09_30")[0]
ac.move_to_element(elm)
ac.move_to_element_with_offset(elm, 461, 422)
该窗口既不是用move_to_element也不是用move_to_element_with_offset 打开的。
我真的不知道我在这里错过了什么。
任何提示都会有所帮助。
编辑:HTML代码:
<div id="resource_id_5_2013-07-30" class="resource" daylenght="720" loaded="false" date="2013-07-30" time="07:00" style="top: 0px; height: 1540px; width: 309.75px; left: 619.5px;">
<div class="terminContainer"></div>
<div class="overlapContainer" style="width: 10%; position: absolute; left: 90%; height: 1560.0px; top: 0px;"></div>
<div id="5" class="anlageContainer" style="width: 10%; height: 1440px; top: 0px;" title="08:53"></div>
<div class="rasterContainer" style="width: 10%; height: 1440px; top: 0px;">
<div id="5_07_00" class="rasterLabel" style="position: absolute; top: 0px;">7:00</div>
<div id="5_07_15" class="rasterLabel" style="position: absolute; top: 30px;">7:15</div>
<div id="5_07_30" class="rasterLabel" style="position: absolute; top: 60px;">7:30</div>
etc...
</div>
</div>
CSS 样式:
.rasterContainer{
position: absolute;
background-color: #EEEEEE;
}
.anlageContainer:hover + .rasterContainer{
background-color: #e3e3e3;
}
.rasterLabel{
z-index: 2;
font-size: 0.7em;
color: #000;
border-top: solid 1px #888;
}
.anlageContainer{
z-index: 3;
cursor: pointer;
position: absolute;
}
在那里您可以看到anlageContainer位于rasterContainer上方。它们之间是rasterLabels --> z-index。
anlageContainer有_
dojo.connect(anlageContainer, 'onclick', function(clickevt){
addTermin(resourceId, getOffsetY(clickevt)/g_terminMultiplikator, datum);
});
图片的两个链接: