Selenium WebDriver: clicando nos elementos dentro de um SVG usando XPath

Eu tenho um objeto SVG com alguns elementos de círculo e retângulo. Usando o webdriver, posso clicar no objeto svg principal, mas não em nenhum dos elementos dentro dele. O problema parece ser apenas com clicar (ou qualquer interação do mouse), como eu posso usar getAttribute () para retornar o valor (s) de largura, ID, x / y, texto, etc, para qualquer coisa sob ele.

Aqui está um exemplo do HTML:

    <div id="canvas">
        <svg height="840" version="1.1" width="757" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative;">
            <image x="0" y="0" width="757" height="840" preserveAspectRatio="none">
            <circle cx="272.34" cy="132.14">
            <rect x="241.47" y="139.23">
            <text style="text-anchor: middle; x="272.47" y="144.11">
        </svg>
    </div>

E um exemplo de WebDriver tentando clicar com o botão direito em um elemento retângulo (e falhando):

    WebElement mapObject = driver.findElement(By.xpath("//*[name()='svg']/*[name()='rect']"));
    Actions builder = new Actions(driver);
    builder.contextClick(mapObject).perform();

Mas isso funciona e retorna um valor:

    driver.findElement(By.xpath("//*[name()='svg']/*[name()='rect']")).getAttribute("x");    

Quando erros do WebDriver, geralmente é isto:

    org.openqa.selenium.WebDriverException: '[JavaScript Error: "a.scrollIntoView is not a function" {file: "file:///var/folders/sm/jngvd6s97ldb916b7h25d57r0000gn/T/anonymous490577185394048506webdriver-profile/extensions/[email protected]/components/synthetic_mouse.js" line: 8544}]' when calling method: [wdIMouse::move]

Eu passei algum tempo pesquisando isso e parece ser um problema um pouco comum com o Selenium e SVGs, no entanto eu estou querendo saber se existe uma solução alternativa. As únicas soluções que encontrei estão interagindo com o próprio SVG, o que eu já posso fazer.

Estou usando o Selenium 2.28 (e tentei 2.29) com Java + Firefox 17.

Qualquer idéia muito apreciada.

questionAnswers(7)

yourAnswerToTheQuestion