a1613150785 2021-01-12 11:40 采纳率: 0%
浏览 175

Java+Selenium,控制已打开的页面,为什么无法执行点击操作?

如何实现已打开页面控制,我是参考https://blog.csdn.net/liang1352389/article/details/104392578

isExist这个方法是我用来判断是否存在页面元素的,页面标题能够获取正确,我想要点击的按钮也是判断为存在的,可就是点击不了,也没有报错,这是什么原因呢?

public class autotestRun {
    //执行操作
    public static void main(String[] args) throws Exception {
        System.setProperty("webdriver.chrome.driver", ".\\driver\\chromedriver.exe");

        ChromeOptions options = new ChromeOptions();

        options.setExperimentalOption("debuggerAddress", "127.0.0.1:9222");

        WebDriver driver = new ChromeDriver(options);

        CreateOutpFiles c1 = new CreateOutpFiles(driver);

    }
public class CreateOutpFiles {
    //点击操作
    public CreateOutpFiles(WebDriver driver) throws InterruptedException{

        String handle1 = driver.getWindowHandle();
        
        System.out.println(driver.getTitle());
        
        System.out.println(BasicConfig.isExist(driver,By.xpath("//*[@id='app']/div/div[2]/div/div[1]/div[1]/div/div/div[1]/div[1]/button"),1));
        Thread.sleep(2000);
        
        driver.findElement(By.xpath("//*[@id='app']/div/div[2]/div/div[1]/div[1]/div/div/div[1]/div[1]/button")).click();
     
        driver.quit();
     }
}


  • 写回答

1条回答 默认 最新

  • 可遇_不可求 2023-12-02 15:59
    关注

    你可以试试这三种方法
    第一种:元素里有href属性,属性为JavaScript。这类元素需要用js点击。
    操作代码:

              driver= new InternetExplorerDriver();
    
              Element el = driver.findElement(By.xpath(“.//*[@id='menu']/div/ul/li[1]/a”))
    
              JavascriptExecutor js = (JavascriptExecutor) driver;
    
              js.executeScript("arguments[0].click();",el);
    

    第二种:元素里有href属性,属性为超链接。这类元素无法点击时,需要获得元素连接,执行打开这个连接地址。
    操作代码:

                 driver= new InternetExplorerDriver();
    
                 Element el = driver.findElement(By.xpath(“.//*[@id='contentul']/li[1]/div/div[1]/a”))
    
                 String url = el.getAttribute("href");
    
                 driver.get(url);
    

    第三种:元素属性正常,没有特殊标签,但是click()就是无法点击,这时需要给元素进行Enter操作。
    操作代码:

              driver= new InternetExplorerDriver();
    
                 Element el = driver.findElement(By.xpath(“.//*[@id='payMobileConfirm']”))
    
              el.sendKeys(Keys.ENTER);
    
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?