0

私は Robotframework 全体と Selenium2Library に不慣れで、問題があります。

rasterContaineranlageContainerの 2 つのdiv があります。それらは同じ x オフセットと y オフセットを持っています。anlageContainerのz オフセットは 3 で、rasterContainerの z オフセットは 0です。 anlageContainerはrasterContainerの上にあります。anlageContainerは 1 つの ID だけを取得し、rasterContainerには他の多くの div が含まれ、それぞれに ID がありますこれらの div の上にマウスを置くと、rasterContainerに時間が表示されます。そこをクリックすると、anlageContainerをクリックするだけです。および他のいくつかのメソッドは、オフセットを計算して時間を取得し、この時間をテキストボックスにウィンドウを開きます。

私がしたいこと:

マウスを rasterContainer の要素に移動し、anlageContainer同じ位置をクリックします。

私が試したこと:

Pythonで独自のライブラリを書き始めました。Selenium2Library のインスタンス、マウス位置の垂直方向の値 (マウスはanlageContainerの上にあります)、およびrasterContainerの要素の垂直方向の値を取得するメソッドが 1 つだけあります。

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);
});

画像への 2 つのリンク:

タイムバー

3D タイムバー

4

1 に答える 1