簡體   English   中英

Selenium2Library:移動鼠標位置以進行單擊

[英]Selenium2Library: move mouse position for click

我是整個Robotframework和Selenium2Library的新手,但我遇到了問題。

我有兩個div: rasterContaineranlageContainer 它們具有相同的x和y偏移。 anlageContainer具有Z偏移的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;
}

在那里,您可以看到anlageContainerrasterContainer之上 在它們之間是rasterLabels- > z-index。

anlageContainer具有

dojo.connect(anlageContainer, 'onclick', function(clickevt){
    addTermin(resourceId, getOffsetY(clickevt)/g_terminMultiplikator, datum);
});

指向圖像的兩個鏈接:

時間欄

3D時間欄

element = find_element_by_xpath (driver, ".//div[@id='resource_id_5_2013-07-30']//div[@class='anlageContainer']")
element.click()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM