在Selenium WebDriver中,按下TAB键,然后再按ENTER键。

37

在Selenium WebDriver中按TAB键,然后按ENTER键:

GenericKeywords.typein(class.variable,PageLength); 其中pagelength是一个字符串。

在这段代码之后,我需要按Tab键。我不知道如何在Selenium WebDriver中按Tab键?


TestNG没有按键的贡献。您可以通过Selenium WebDriver完成,TestNG用于测试验证/断言。 - Ripon Al Wasim
由于您正在使用TestNG框架,因此很容易理解您正在使用Java语言。 - Ripon Al Wasim
8个回答

63

使用Java:

WebElement webElement = driver.findElement(By.xpath(""));//You can use xpath, ID or name whatever you like
webElement.sendKeys(Keys.TAB);
webElement.sendKeys(Keys.ENTER);

Keys.TAB 应该改为 Keys.Tab(去掉大写)。-sulu - Su Llewellyn
Keys.TAB 应该改为 Key.TAB,请参见 https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/selenium-webdriver/v3/index.d.ts#L1625 - Corey Cole
Keys 是什么? - Nicolas Gervais
@NicolasGervais 这是selenium.webdriver.common.keys.Keys - Carlos Roldán
为什么我们需要这个元素? - Zeeshan Ahmad Khalil

5
在JavaScript(Node.js)中,我可以这样做:
describe('UI', function() {

describe('gets results from Bing', function() {
    this.timeout(10000);

    it('makes a search', function(done) {
        var driver = new webdriver.Builder().
        withCapabilities(webdriver.Capabilities.chrome()).
        build();


        driver.get('http://bing.com');
        var input = driver.findElement(webdriver.By.name('q'));
        input.sendKeys('something');
        input.sendKeys(webdriver.Key.ENTER);

        driver.wait(function() {
            driver.findElement(webdriver.By.className('sb_count')).
                getText().
                then(function(result) {
                  console.log('result: ', result);
                  done();
            });
        }, 8000);


    });
  });
});

使用webdriver.Key.TAB进行选项卡切换


嗨idophir,我正在使用Node.js和wd.js编写自动化移动测试,但出现了问题。在node repl中,当我键入require('wd').key时,它是未定义的。当我键入require('wd').SPECIAL_KEYS时,我会得到一个包括tab在内的键列表。但是当我执行以下操作时:.sendKeys(wd.SPECIAL_KEYS.Tab)它会发送一个笑脸。不好玩!哈哈,你知道是否有一种方法可以使用wd进行移动自动化吗?这是我正在使用的:https://www.npmjs.com/package/wd - Matthew

3

使用Java:

private WebDriver driver = new FirefoxDriver();
WebElement element = driver.findElement(By.id("<ElementID>"));//Enter ID for the element. You can use Name, xpath, cssSelector whatever you like
element.sendKeys(Keys.TAB);
element.sendKeys(Keys.ENTER);

使用C#:

private IWebDriver driver = new FirefoxDriver();
IWebElement element = driver.FindElement(By.Name("q"));
element.SendKeys(Keys.Tab);
element.SendKeys(Keys.Enter);

3
"最初的回答" 在Python中,这对我起作用。
self.set_your_value = "your value"

def your_method_name(self):      
    self.driver.find_element_by_name(self.set_your_value).send_keys(Keys.TAB)`

1
请确保在导入中包含Key...

const {Builder, By, logging, until, Key} = require('selenium-webdriver');

searchInput.sendKeys(Key.ENTER) 对我非常有效


1
有时候Tab键无法向前移动,您可以按以下组合键使用Tab和Enter键。 使用C#:
Driver.SwitchTo().Window(Driver.WindowHandles[1]);
IWebElement element = Driver.FindElement(By.TagName("body"));  
element.SendKeys(Keys.Tab + Keys.Enter);                
Driver.SwitchTo().Window(Driver.WindowHandles[0]);

0
以下是输入文本并按回车的代码:
public static void sendKeysNEnter(WebDriver wb, String sXpah, String sEnterValues, boolean bIsEnter) {
    try {
        WebElement webelement = wb.findElement(By.xpath(sXpah));
        webelement.click();
        webelement.clear();
        webelement.sendKeys(sEnterValues);
        if (bIsEnter) {
            webelement.sendKeys(Keys.ENTER);
        }
    }

    catch (Exception e) {
        e.printStackTrace();
    }
}

FYI,以下是输入文本并按下Tab键的代码:
public static void sendKeysNEnterTab(WebDriver wb, String sXpah, String sEnterValues, boolean bIsEnterTab) {
    try {
        WebElement webelement = wb.findElement(By.xpath(sXpah));
        webelement.click();
        webelement.clear();
        webelement.sendKeys(sEnterValues);
        if (bIsEnterTab) {
            webelement.sendKeys(Keys.TAB);
        }
    }

    catch (Exception e) {
        e.printStackTrace();
    }
}

以下是使用webelement按下回车键的代码:
WebElement webelement;
webelement.sendKeys(Keys.TAB);

非常适合我,谢谢。

-1
WebElement webElement = driver.findElement(By.xpath(""));

//输入xpath或ID。

     webElement.sendKeys("");

//输入要传递的字符串。

     webElement.sendKeys(Keys.TAB);

//这将输入您想要传递的字符串,并按下“Tab”按钮。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接