aca*_*lon 1 c# jquery selenium selenium-webdriver
Selenium WebDriver:2.35.FireFox:25.0
我想将鼠标移到div上,这将导致隐藏的图像变得可见,然后单击图像.我已经在这里,这里,这里和其他人阅读了这些帖子.一般的答案是做一些形式的事情:
action.moveToElement(we).moveToElement(webdriver.findElement(By.xpath("/expression-here")).click().build().perform();
Run Code Online (Sandbox Code Playgroud)
但是,这在以下示例中不起作用:
HTML:
<div id="bb_testDiv">
<img class="bb_matchImgTest bb_standardHidden" src='@Url.Content( "~/images/match.png" )' alt='Match'/>
</div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript/jQuery的:
$( document ).on( 'hover', '#bb_testDiv', function ()
{
$( this ).find( '.bb_matchImgTest' ).toggleClass( 'bb_standardHidden' );
} )
$( document ).on( 'click', '.bb_matchImgTest', function ()
{
alert('here');
} )
Run Code Online (Sandbox Code Playgroud)
CSS:
.bb_standardHidden
{
visibility:hidden;
}
Run Code Online (Sandbox Code Playgroud)
C#测试代码:
IWebElement testDiv = WebDriver.FindElement( By.Id( "bb_testDiv" ) );
Actions builder = new Actions( WebDriver );
Actions hoverClick = builder.MoveToElement( testDiv ).MoveToElement( testDiv.FindElement( By.ClassName( "bb_matchImgTest" ) ) ).Click();
hoverClick.Build().Perform();
Run Code Online (Sandbox Code Playgroud)
问题是不会触发click事件.此外,元素保持可见,因此任何后续鼠标悬停都会隐藏它.当然,这一切都适用于手动测试.
问题似乎与悬停事件有关.如果我把它分成两个事件 - mouseenter和mouseleave(而不是悬停)与addClass和removeClass(而不是toggleClass)然后它的工作原理.只是想知道是否有可能让这个工作与悬停?
小智 5
由于隐藏了元素.bb_standardHidden,因此可能是因为MoveToElement无法正常工作.
IWebElement testDiv = WebDriver.FindElement( By.Id( "bb_testDiv" ) );
Actions builder = new Actions( WebDriver );
Actions hoverClick = builder.MoveToElement( testDiv ).MoveByOffset( x, y ).Click();
hoverClick.Build().Perform();
Run Code Online (Sandbox Code Playgroud)
用x和y确保鼠标悬停在隐藏的图片上.
归档时间: |
|
查看次数: |
14161 次 |
最近记录: |