我开始学习 selenium
但是我在尝试上传和下载时遇到了这样的问题:
我想上传一个this site的dwg文件,然后把它转换成文本文件,所以我用的是selenium。
上载文件时遇到问题
这是我的错误消息:
我们已经尝试了几种方法来解决这个问题。
1.最大化();
1.使用click()代替sendKeys()
1.检查元素是否已启用
但是,没有解决方案能够解决这个问题。
const { Builder, Browser, By, Key, until } = require("selenium-webdriver");
const chromeDriver = require("selenium-webdriver/chrome");
const chromeOptions = new chromeDriver.Options();
const chromeExample = async () => {
const driver = await new Builder()
.forBrowser(Browser.CHROME)
.setChromeOptions(chromeOptions.headless())
.build();
driver.manage().window().maximize();
await driver.get("https://products.aspose.app/cad/text-extractor/dwg");
await driver.wait(
until.elementLocated(By.className("filedrop-container width-for-mobile")),
10 * 1000
);
await driver.wait(
until.elementIsEnabled(
driver.findElement(By.className("filedrop-container width-for-mobile"))
),
10 * 1000
);
const tmp = await driver
.findElement(By.className("filedrop-container width-for-mobile"))
.sendKeys("/home/yeongori/workspace/Engineering-data-search-service/macro/public/images/testfile1.dwg");
console.log(tmp);
};
同样的错误发生在我改变如下代码时。
一个奇怪的事情是,如果我改变sendKeys点击并检查tmp与console.log,它是空的。
这是项目目录
我怎样才能解决这个问题呢?如果这个问题太简单的话,我很抱歉。但是如果有任何提示的话,我会很高兴的。谢谢。
WSL 2(Ubuntu-20.04),节点. js版本18.12.1
1条答案
按热度按时间hmae6n7t1#
您需要在
input
元素上使用sendKeys
,input
元素嵌套在您当前尝试向其发送键的元素中的更深处。可以使用以下xpath访问元素: