2016-04-25 40 views
0

我目前需要複製訂單ID,然後將其粘貼到搜索字段中。如何使用硒複製和粘貼一個值?

到目前爲止,我曾嘗試:

driver.findElement (By.xpath("/html/body/main/div/div/div[2]/div/div/div[2]/div/table/tbody/tr[2]/td[2]")).sendKeys(Keys.chord(Keys.CONTROL, "c")); , 

然而,這無法複製任何東西,粘貼時粘貼什麼我剛纔被自己複製。

Click here

+0

你有沒有發送CTRL + C之前選擇的文本? – alecxe

+0

@alecxe我沒有什麼是選擇文本的最佳方式?謝謝 –

+0

@alecxe你好我試過.sendKeys(Keys.chord(Keys.CONTROL,「a」),Keys.chord(Keys.CONTROL,「c」));.然而,這選擇了一切,而不僅僅是我彈出框中需要的文本。問候卡蘭 –

回答

1

嗨爲什麼你應對你的情況,爲什麼不使用gettext(特定的文本即訂單ID),並保持訂單ID字符串中,然後通過它在的SendKeys()這將是簡單易做

String myOrderText = driver.findElement(By.xpath("ypur xpath to order id")).getText(); 

和使用它像下面

driver.findElement (By.xpath("/html/body/main/div/div/div[2]/div/div/div[2]/div/table/tbody 
/tr[2]/td[2]")).sendKeys(myOrderText)); 

此外,如果它是強制性的複製並粘貼然後再去做像下面

使用動作類硒複製的文本(訂單ID)

// or any locator strategy that you find suitable 
     WebElement locOfOrder = driver.findElement(By.id("id of the order id")); 
Actions act = new Actions(driver); 
act.moveToElement(locOfOrder).doubleClick().build().perform(); 
// catch here is double click on the text will by default select the text 
// now apply copy command 

driver.findElement(By.id("")).sendKeys(Keys.chord(Keys.CONTROL,"c")); 
// now apply the command to paste 
driver.findElement (By.xpath("/html/body/main/div/div/div[2]/div/div/div[2]/div/table/tbody/tr[2]/td[2]")).sendKeys(Keys.chord(Keys.CONTROL, "v")); 

希望這有助於你

+0

嗨@SeleniumLearner看起來像第一個解決方案似乎工作,將放棄它謝謝 –

+0

PLZ將它標記爲您的答案,因爲這將是我的第一個答案 – 2016-04-25 13:23:41

+0

我將如何獲得段落的文本,而不是一個單一的字?該段被分解成單獨的元素 –

1

你不需要做副本和所有的。你所要做的就是使用getText()。 試試下面的代碼:

String mytext = driver.findElement(By.xpath("/html/body/main/div/div/div[2]/div/div/div[2]/div/table/tbody/tr[2]/td[2]")).getText(); 
driver.findElement(By.xpath("your element path")).sendKeys(mytext); 

謝謝