首页 > 解决方案 > 如何使用硒读取画布元素属性值?

问题描述

我想读取画布元素值(“Answer:5015”),但属性值不存在。你能告诉我如何读取属性值吗?

应用网址:https ://the-internet.herokuapp.com/challenging_dom#edit

在此处输入图像描述

标签: seleniumselenium-webdriver

解决方案


此代码使用 Java 和 Edge 浏览器有效:

System.setProperty("webdriver.edge.driver", "msedgedriver.exe");

    WebDriver driver = new EdgeDriver();
    
    driver.get("https://the-internet.herokuapp.com/challenging_dom#edit");      
    
    String answer = new String();
    
    ArrayList<WebElement>scripts = new ArrayList<WebElement>((ArrayList<WebElement>) driver.findElements(By.tagName("script")));
    
    for(int i = 0; i < scripts.size(); i++) {
        
        String focusText = scripts.get(i).getAttribute("innerHTML");
        
        if(focusText.contains("canvas.strokeText")) {

                answer = focusText.substring(focusText.indexOf("Answer"), focusText.indexOf("',"));
                
                break;
                
        }
    }
    
    System.out.println(answer);

推荐阅读