[英]Selenium C#: How to check/assert copied text? (Net6)
在我的網站上,我可以點擊一個按鈕,它會復制文本。 在下面的屏幕截圖中,它是這樣的:
單擊復制文本后,它應該復制圖片底部的文本Bitte einschalten und ausschalten äüöß 876543212345678
。
現在我想檢查副本 function 是否有效以及網頁上的文本是否與已復制的文本相同。
我已經在尋找答案,但對我沒有任何幫助。
我的想法是將文本粘貼到瀏覽器的URL字段中,然后進行比較,但是selenium似乎無法訪問這個URL字段。
也沒有其他文本字段可以在其中粘貼文本。
將不勝感激任何幫助!
編輯:C# 中有一種方法不再適用於 .NET Core。 https://learn.microsoft.com/en-us/do.net/api/system.windows.clipboard?view=windowsdesktop-6.0
尋找這樣的其他解決方案。
使用一點 JavaScript,您可以這樣做:
使用 JavaScript 創建一個文本字段。
獲取文本字段的值。
var js = (IJavaScriptExecutor)driver;
var textareaId = DateTime.Now.Ticks.ToString();
var script = $@"
var textarea = document.createElement('textarea');
textarea.id = '{textareaId}';
document.body.appendChild(textarea);";
js.ExecuteScript(script);
var textarea = driver.FindElement(By.Id(textareaId));
// Paste clipboard into textarea
textarea.SendKeys(Keys.CONTROL + "v");
var clipboardText = textarea.GetProperty("value");
請注意此文本區域附加到頁面的位置。 如果它被另一個元素隱藏或部分遮擋,您將得到一個ElementNotInteractableException
。 如果發生這種情況,請在附加文本區域時在頁面上選擇一個不同的元素。 只需將document.body.appendChild(textarea)
替換為對不同元素的引用。
例如: document.getElementById('someOtherElementId').appendChild(textarea)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.