簡體   English   中英

Selenium C#:如何檢查/斷言復制的文本? (Net6)

[英]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,您可以這樣做:

  1. 使用 JavaScript 創建一個文本字段。

  2. 獲取文本字段的值。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM