2015-11-02 202 views
2

我正在按位置進行點擊操作,當我移動到位置並點擊鼠標時。 第一次點擊工作正常,但其他沒有反應。Selenium WebDriver第二次點擊不起作用

我的主要目標:我有一個列表(x,y)都爲我需要點擊

代碼

Actions action = new Actions(driver); 
action.MoveByOffset(BlocX + 12, BlocY + 12); 
action.Click();//only this is working 
action.Perform(); 
action.Release(); 

action.MoveByOffset(BlocX + 36, BlocY + 12); 
action.Click(); 
action.Perform(); 
action.Release(); 

action.MoveByOffset(BlocX + 60, BlocY + 12); 
action.Click(); 
action.Perform(); 
action.Release(); 

我是什麼在此代碼丟失,我怎麼瓶坯所有點擊?

我試圖在這結束時執行不工作太

這是代碼

Actions action = new Actions(driver); 
    action.MoveByOffset(BlocX + 12, BlocY + 12); 
    action.Click(); 
    action.Release(); 
    action.MoveByOffset(BlocX + 36, BlocY + 12); 
    action.Click(); 
    action.Release(); 
    action.MoveByOffset(BlocX + 60, BlocY + 12); 
    action.Click(); 

    action.Perform(); 

這使更多的點擊只有在這種情況下,當我不要再移動鼠標位置

Actions builder = new Actions(driver); 
    builder.MoveByOffset(BlocX + 12, BlocY + 12).Click(); 
    builder.Click(); 
    builder.Click(); 
    builder.Click(); 
    builder.Perform(); 

任何人都知道如何做所有位置上的所有點擊?

+0

爲什麼你使用'Actions'爲什麼你不能找到頁面上的元素? –

+0

這是區域元素,點擊不用它 –

+0

你確定每個職位都是獨立的嗎?我的意思是,當它點擊第一個時,其他人的位置可能會改變。 –

回答

1

嘗試構建所有順序操作,然後執行它。每次點擊時還需要撥打newActions類,因爲根據您的代碼在執行第二次點擊時,鼠標指針位於BlocX + 12。所以你的第二次點擊發生在BlockX + 12 + BlockX + 36

// click 1 
Actions actions = new Actions(driver); 
actions.moveByOffset(BlocX + 12, BlocY + 12).click().build().perform(); 

// click 2 
actions = new Actions(driver); 
actions.moveByOffset(BlocX + 36, BlocY + 12).click().build().perform(); 

// click 3 
actions = new Actions(driver); 
actions.moveByOffset(BlocX + 60, BlocY + 12).click().build().perform(); 
+0

它使第一次點擊和其他人沒有反應,其他人有另一個位置+60和+84 –

+0

我已經更新了代碼...你可以再試一次嗎? – Sighil

+0

我發現它。首先點擊它必須是actions.MoveByOffset(24,0).Click()。Build()。Perform();,...它會從最後位置移動+ 24px –