我有一個(gè) HTML 元素,如下所示:<td title="11607" style="text-overflow:ellipsis;white-space:nowrap;">11607</td>我用來查找元素的定位器是:string number= "11607";IWebElement element = DriverUser.FindElement(By.XPath(string.Format("//*[contains(text(),'{0}')]" , number)));我想使用 selenium 網(wǎng)絡(luò)驅(qū)動(dòng)程序標(biāo)記文本 11607,在搜索了很長(zhǎng)時(shí)間后,我找到了 2 個(gè)解決該問題的方法;第一個(gè)解決方案似乎是最合適的,但對(duì)我不起作用。我想知道是因?yàn)?HTML 標(biāo)簽是 TD 還是因?yàn)樗皇钦_的解決方案。另一個(gè)解決方案有效,但我想改進(jìn)它。我將在下面詳細(xì)說明:第一個(gè)解決方案是:(取自Highlight text using Selenium)public static void HighlightText(this IWebElement element) { element.Click(); Actions actions = new Actions(Driver); actions.SendKeys(Keys.Home).Build().Perform(); int length = element.Text.Length; actions.KeyDown(Keys.LeftShift); for(int i = 0 ; i < length ; i++) { actions.SendKeys(Keys.ArrowRight); } actions.KeyUp(Keys.LeftShift); actions.Build().Perform(); }當(dāng)我運(yùn)行它時(shí),它什么也沒做。也許是因?yàn)槲业臉?biāo)簽是 TD 標(biāo)簽而不是 INPUT 或類似的東西?第二種解決方案是:(取自https://www.edgewordstraining.co.uk/2018/02/23/highlighting-web-elements/,并出現(xiàn)在其他地方) public static void HighlightTextJS(this IWebElement element) { var jsDriver = ( IJavaScriptExecutor ) Driver; string highlightJavascript = @"$(arguments[0]).css({ ""background"" : ""DodgerBlue""});"; jsDriver.ExecuteScript(highlightJavascript , new object[] { element }); }它標(biāo)記了元素的所有背景,而不僅僅是字母。我想準(zhǔn)確地模擬在文本上拖動(dòng)鼠標(biāo)光標(biāo)。根據(jù)隨附的屏幕截圖,我得到了像第一行(11604)這樣的視圖,但對(duì)像第二行(11602)這樣的視圖感興趣也許有一個(gè)屬性我可以添加到 CSS 來模擬它?
1 回答

白板的微信
TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
我為您找到了解決方案的 C# 語法。
new Actions(Driver).MoveToElement(element, 1, 1).ClickAndHold().MoveToElement(element, element.Size.Width-1, 1).Release().Perform();
在您的嘗試中,它從元素的中心開始,直到從元素的中心計(jì)算出的元素寬度。但這應(yīng)該從元素的左上角開始,直到元素的寬度。
希望這對(duì)你有用。
- 1 回答
- 0 關(guān)注
- 145 瀏覽
添加回答
舉報(bào)
0/150
提交
取消