当我使用SendKeys发送右光标箭头时,插入标记移动到contenteditable的末尾,而不是右边的一个字符。


在输入框上按预期工作
用于以前的版本(6个月前,不知道版本)
关键事件处理程序报告已按预期输入了右箭头
版本


铬:78.0.3904.108
chrome驱动程序:78.0.3904.105
Selenium.Chrome.WebDriver:77.0.0
Ubuntu 18.04



这是样本单元测试:

using System.Threading;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions;

namespace SeleniumTest
{
    [TestFixture]
    public class MiniTest
    {
        [Test]
        public void Test()
        {
            var driver = new ChromeDriver("/usr/bin", new ChromeOptions());

            driver.Navigate().GoToUrl("file:///home/daw/Desktop/test.html");

            Thread.Sleep(3000);

            var element = driver.FindElement(By.CssSelector("#test"));

            new Actions(driver)
                .MoveToElement(element, 1, 1)
                .Click()
                .Perform();

            driver.SwitchTo().ActiveElement().SendKeys(Keys.ArrowRight);
        }
    }
}


和一个示例页面:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div id="test" contenteditable>This is a test</div>
        <input id="test2" value="This is a test"></input>
    </body>
</html>


您可以更改#test id以在元素类型之间切换。

编辑:提出


硒虫https://github.com/SeleniumHQ/selenium/issues/7841
chromedriver错误https://bugs.chromium.org/p/chromedriver/issues/detail?id=3260

最佳答案

这已被确定为与网络驱动程序规范的最新更改有关的chromedriver错误:

https://bugs.chromium.org/p/chromedriver/issues/detail?id=3214


  WebDriver规范有一个开放的PR。批准后,我们​​将解决此问题

关于c# - Selenium SendKeys Keys.ArrowRight移动到可编辑内容的结尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59161603/

10-12 12:41
查看更多