Selenium网络驱动程序中的"element not reachable by keyboard"问题



我在Selenium Webdriver中遇到问题。

我需要上传一个网站的文件。下面是我的尝试:

driver.findElement(By.cssSelector(".icon-upload-cloud"))
.sendKeys(
"C:"                    + File.separator +
"Users"                 + File.separator +
"Vinicius"              + File.separator +
"OneDrive"              + File.separator +
"Arquivos para códigos" + File.separator +
"Logo empresa.png"
);

问题是上传按钮返回错误:"element is not reachable by keyboard".

我可以解决这个问题:

new WebDriverWait(driver, 20)
.until(
ExpectedConditions.elementToBeClickable(
By.cssSelector(".icon-upload-cloud")
)
)
.click();

但是我不知道如何上传文件,因为Windows打开一个文件选择对话框,我不能使用sendKeys()

"键盘无法访问的元素"

的意思完全一样你不能用键盘

与元素交互我认为你是在与一个按钮元素而不是'input'元素交互

如果你想使用send_keys上传,你应该发送到input标签的元素,其显示属性不是none,并且没有被禁用

我是这样做的:

WebElement fileupload = driver.findElement(By.cssSelector(".icon-upload-cloud"));
fileupload.click();    
StringSelection ss = new StringSelection("C:\Users\Vinicius\OneDrive\Arquivos para códigos\Arquivo de áudio.mp3"); 
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);                                     
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);

谢谢你的帮助:)

相关内容

  • 没有找到相关文章