C# 如何使用selenium webdriver以蓝色标记文本背景(类似于将鼠标拖动到文本上)?
我有一个HTML元素,如下所示:C# 如何使用selenium webdriver以蓝色标记文本背景(类似于将鼠标拖动到文本上)?,c#,css,selenium,webdriver,C#,Css,Selenium,Webdriver,我有一个HTML元素,如下所示: <td title="11607" style="text-overflow:ellipsis;white-space:nowrap;">11607</td> 我想使用selenium web驱动程序标记文本11607 在寻找了很长一段时间后,我找到了两种解决方案; 第一个解决方案似乎是最合适的,但对我不起作用。我想知道是因为HTML标记是TD还是因为它不是正确的解决方案。 另一个解决方案有效,但我想改进它 我将详细说明如下: 第一个解
<td title="11607" style="text-overflow:ellipsis;white-space:nowrap;">11607</td>
我想使用selenium web驱动程序标记文本11607
在寻找了很长一段时间后,我找到了两种解决方案;
第一个解决方案似乎是最合适的,但对我不起作用。我想知道是因为HTML标记是TD还是因为它不是正确的解决方案。
另一个解决方案有效,但我想改进它
我将详细说明如下:
也许我可以在CSS中添加一个属性来模拟它?
另外我尝试了通过SendKeys发送一些密钥的选项:
Actions actions = new Actions(Driver);
actions.MoveToElement(element);
actions.SendKeys(Keys.Shift + Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft);
actions.Build().Perform();
这也是:
Actions actions = new Actions(Driver);
actions.SendKeys(element, Keys.Shift + Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft);
actions.Build().Perform();
它仍然不起作用
谢谢你的帮助 我为您找到了解决方案的C#语法
new Actions(Driver).MoveToElement(element, 1, 1).ClickAndHold().MoveToElement(element, element.Size.Width-1, 1).Release().Perform();
在您的尝试中,它从元素的中心开始,一直到从元素的中心计算元素的宽度。但这应该从元素的左上角开始,一直到元素的宽度。希望这对您有效。是的,第一个解决方案是针对输入元素,因此不适用于您。如果您可以将此python代码转换为C#,它应该可以工作:
ActionChains(driver)。使用_offset(elem,1,1)将_移动到_element_。单击_和_hold()。使用_offset(elem,elem.size['width'],1)将_移动到#element#。release()。perform()
我将建议的代码转换为C:新操作(driver)。MoveToElement(element)。ClickAndHold().MoveByOffset(element.Size.Width,1).Release().Perform()代码>并且它工作!但它也在同一表行中标记它前面的两个相邻值。我也很乐意解决这个问题,但同时,还有什么比什么都没有好。Kamal,我完全运行了你的代码,现在它标记了我的文本+一个“邻居”,为什么会这样?我不确定它是否会起作用,但只要试一下:新操作(驱动程序)。MoveToElement(元素,1,1)。ClickAndHold()。MoveToElement(element,element.Size.Width-1,1).Release().Perform();
btw,你为什么用Release()而不是Build()?@C.Mar,如果你的问题解决了,请接受答案。而且,我不熟悉C#中可用的Build()
方法,python中没有这样的方法。所以Release()
正在释放用ClickAndHold()按住的鼠标按钮。
我接受了你的答案。谢谢你的解释。祝你有愉快的一天。
Actions actions = new Actions(Driver);
actions.MoveToElement(element);
actions.SendKeys(Keys.Shift + Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft);
actions.Build().Perform();
Actions actions = new Actions(Driver);
actions.SendKeys(element, Keys.Shift + Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft + Keys.ArrowLeft);
actions.Build().Perform();
new Actions(Driver).MoveToElement(element, 1, 1).ClickAndHold().MoveToElement(element, element.Size.Width-1, 1).Release().Perform();