我的目標是把鼠標移動到如何執行移動鼠標並單擊操作?
1)滾動區和
2)點擊,這樣滾動條將下移。
我正在使用Robot類來執行移動鼠標操作,但無法單擊滾動條區域。
Robot rb=new Robot();
rb.mouseMove(1135,400);
Thread.sleep(5000);
Actions act=new Actions(driver);
act.click().perform();
請幫我解決問題。
我的目標是把鼠標移動到如何執行移動鼠標並單擊操作?
1)滾動區和
2)點擊,這樣滾動條將下移。
我正在使用Robot類來執行移動鼠標操作,但無法單擊滾動條區域。
Robot rb=new Robot();
rb.mouseMove(1135,400);
Thread.sleep(5000);
Actions act=new Actions(driver);
act.click().perform();
請幫我解決問題。
好吧,所以這裏是一個非常一般的演示。你可以很容易地適應你的需求。如果你想在滾動中使用不同的高度,你必須考慮到我使用的時間(一秒)會越大,滾動窗格越高。但是,對於通用窗口,您可以檢測滾動窗格何時位於底部並不再調用定時器。我評論了你可以用來通用的部分。
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.Dimension;
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Stackoverflow extends JFrame{
private java.util.Timer timer;
private JFrame window;
public static void main(String [] args){
new Stackoverflow();
}
public Stackoverflow(){
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(500, 2000));
panel.setOpaque(false);
this.window = this;
this.timer = new java.util.Timer();
timer.schedule(new AutoSaveTasker(), 1000);
this.add(new JScrollPane(panel));
this.pack();
this.setVisible(true);
}
class AutoSaveTasker extends TimerTask{
@Override
public void run(){
/*
if(scroll not at the bottom yet?)
then call timer again like this /timer.schedule(new AutoSaveTasker(), INTERVAL);
*/
try{
Robot robot = new Robot();
robot.mouseMove(window.getWidth() - 10, window.getHeight() - 10);
robot.mousePress(InputEvent.BUTTON1_MASK);
Thread.sleep(1000);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
根據腳本,我修改了代碼。 Robot rb = new Robot(); rb.mouseMove(1135,400); Thread.sleep(5000); rb.mousePress(InputEvent.BUTTON1_MASK); Thread.sleep(5000); rb.mouseRelease(InputEvent.BUTTON1_MASK); Thread.sleep(8000); (「some-ID」))。click(); 現在,所需的web元素在視圖中。但是,我無法點擊該特定元素。 – todayILearned
您可以使用DOM中的任何定位器方法找到滾動條嗎? –
@RupeshShinde:我無法單獨找到滾動條,它是網格佈局的一部分。 – todayILearned
[Selenium Webdriver移動鼠標到Point]可能的重複(http://stackoverflow.com/questions/12974488/selenium-webdriver-move-mouse-to-point) – JeffC