首页 > 解决方案 > Javascript Selenium - 出于某种原因,我的代码不会在 Internet Explorer 的谷歌页面上单击或导航

问题描述

对于 Internet Explorer 的 javascript 版本的 selenium,我有一点棘手的问题。

我一直在尝试做一个简单的测试:

第 1 步 - 打开 Internet Explorer。第 2 步 - 单击搜索栏(名称在 CSS 中为 q)。第 3 步 - 在搜索栏中输入 wikipedia。第 4 步 - 按 Enter 键搜索维基百科。

在 python 和其他浏览器中,这很容易。出于某种原因,在 Internet Explorer 中,它被证明具有挑战性。我查看了该网站上的各种回复。

有些人呼吁在输入任何数据之前点击搜索栏。其他人则表示需要添加等待条件。我都做了(请看我下面的代码)。如果你们能复制这个问题并帮助我解决它,我将非常感激。

代码版本 1,这是我的简化版本:

        async function example (){let driver = new Builder().forBrowser("internet explorer").build();
        driver.get("http://google.com").then(function(){
            driver.wait(elementIsEnabled(By.name("q")),20).findElement(webdriver.By.name("q")).click().then(function(){
                driver.wait(elementIsVisible(By.name("q"))).findElement(webdriver.By.name("q")).sendKeys("Selenium", Key.ENTER);
            })
        });
     }
example ();

代码版本 2 更冗长,是我诊断问题的尝试。如您所见,我没有成功...

async function callOne(){
     await console.log("page complete");}
async function callTwo(){
        await console.log("click complete");}
async function callThree(){
        await console.log("navigation complete");}

let driver = new Builder()
        .usingServer()
        .forBrowser("internet explorer")
        .build();

async function example() {
    try {
    await driver.get("http://www.google.com");
    driver.wait(elementIsVisible(By.name("q")), 20).then(callOne)
    (await driver.findElement(By.name('q'))).click().then
        (callTwo).then(async function(){
            await driver.findElement(By.name("q")).sendKeys('wikipedia',Key.RETURN);
        }).then(callThree);   
    } catch (error) {
        console.log("issue with the code")
        ;await driver.quit();
    }
    finally{
        await driver.quit();
    }
}
example();

请查看我的依赖项:

请查看使用中的 package.json:

{
  "name": "webdriver",
  "version": "1.0.0",
  "description": "selenium example project",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "this newbie",
  "license": "MIT",
  "dependencies": {
    "selenium-webdriver": "^4.0.0-alpha.8"
  }
} 

标签: javascriptseleniuminternet-explorer

解决方案


推荐阅读