Java 粘贴到文本区域

Java 粘贴到文本区域,java,selenium,webdriver,Java,Selenium,Webdriver,我试图通过selenium webdriver制作一个程序,将我自己注册到纸牌游戏比赛中,从而使我的一天变得更轻松。我是初学者,所以我很激动,尽管只是点击这里,确认这一点,写下这一点,但最后我遇到了一个问题,我很难解决 最后,您需要通过deck代码提交deck。sendKeys功能?(不确定这是否是正确的措辞)不起作用,因为它实际上需要粘贴到文本区域。每当你试图“只是”写进盒子里,它就会说它的代码无效 driver.findElement(By.xpath("//*[@id=\"react-ro

我试图通过selenium webdriver制作一个程序,将我自己注册到纸牌游戏比赛中,从而使我的一天变得更轻松。我是初学者,所以我很激动,尽管只是点击这里,确认这一点,写下这一点,但最后我遇到了一个问题,我很难解决

最后,您需要通过deck代码提交deck。sendKeys功能?(不确定这是否是正确的措辞)不起作用,因为它实际上需要粘贴到文本区域。每当你试图“只是”写进盒子里,它就会说它的代码无效

driver.findElement(By.xpath("//*[@id=\"react-root\"]/div/div/div[2]/div/div[2]/div/div[4]/div[1]/div/textarea")).click();

 driver.findElement(By.xpath("//*[@id=\\\"react-root\\\"]/div/div/div[2]/div/div[2]/div/div[4]/div[1]/div/textarea")).sendKeys(Keys.chord(Keys.CONTROL + "v"));
我这样做了,第一行只是点击文本区域,然后尝试粘贴它(虽然我手动复制了代码组,不确定我将如何解决这个问题,因为我需要粘贴3个不同的,但这是未来的问题),但代码不会粘贴,我不知道哪里是陷阱。我用相同的设置在不同的文本区域尝试了粘贴功能,这意味着我在剪贴板上复制了一些东西,效果很好

甲板代码的示例为

" AAECAZICCiT3A94FrtICv/IC9fwC2KAD+KED9KID/KMDCkBWX/4BxAapogPIogPcogPvogPZqQMA "

我希望我提供了我应该知道的一切,我会很高兴地发布更多:)提前谢谢,我希望有人能帮助我

这可能不起作用,因为我没有看到你明确地复制代码组,正如你提到的,你是手动复制的。我还修改了您的示例,使其不使用Keys.chord,因为这里可能不需要它们

要复制元素,请执行以下操作:

deckCodeWebElement = driver.findElement(locatorToFindDeckCode);

deckCodeWebElement.send_keys(Keys.CONTROL+'a')
time.sleep(1)
deckCodeWebElement.send_keys(Keys.CONTROL+'c')
然后,要粘贴:

deckCodeWebElementToPaste = driver.findElement(locatorToFindDeckCodeToPaste);

deckCodeWebElementToPaste.send_keys(Keys.CONTROL+'v')

另一方面,我建议您将XPath缩短为相对表示法,因为您使用的绝对表示法非常脆弱,很容易中断。您希望查找元素,而不考虑它们在DOM树中的位置

您可以更改此设置:

/*[@id=\\\\“react root\\\”]/div/div[2]/div/div[2]/div/div[4]/div[1]/div/textarea

为此:

//textarea


如果存在多个
textarea
元素,您可能需要查询ID、class或name之类的内容,但无需从根节点开始使用
div[2]
div[4]
,除非绝对必要。

只需将键(“您的字符串”)发送到textarea,而不是发送键(CONTROL+V)1。请添加textarea的html结构。2.您在帖子中提供的代码与您粘贴在文本区域中的代码相同吗?如果是,则在3之前和之后有尾随空格。当您手动尝试时,同一组是否正常工作?4.文本区域是否在iframe内?5.提供您得到的代码试用和错误,6。请阅读并张贴相应的问题。