硒:<a> tag with href click behavior wrong</a>

时间:2012-11-29 10:19:24

标签: python selenium

我的测试网站有这样的元素:

<a href="http://t.qq.com/p/t/148892114342486" class="comt" num="1">评论</a>

有一些javascript与标签挂钩,所需的行为是在点击标签时,浏览器不会去任何地方而是停留在同一页面,打开评论textarea供用户输入。

但是在selenium中,两者都发生了,textarea被打开,浏览器将导航到href指向的页面,这对于我的selenium脚本来说不是理想的结果。

如何避免这种情况?

我正在考虑将href属性更改为“#”以避免此类问题,但看起来selenium本身无法更改网页中的元素,这是真的吗?

我的python selenium脚本:

ask = driver.find_element_by_xpath("//a[@class='comt']")
ask.click()

1 个答案:

答案 0 :(得分:0)

正如上面用户所评论的......因为JS与超链接上的点击事件挂钩。

然后建议直接触发JavaScript事件,而不是专注于超链接上的点击事件..

从您评论的上面的网址中,我采用了以下元素

<a title="" onmousedown="MI.Bos('btnVaryEntrance1')" onclick="vary('yilanyeh','叶怡兰');" href="javascript:void(0)">

它有一个JS函数 vary('yilanyeh','叶怡兰') 挂钩Click事件...所以我的代码看起来像这样(C#代码)< / p>

        IWebDriver driver = new InternetExplorerDriver();
        driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
        driver.Navigate().GoToUrl("http://t.qq.com/yilanyeh");

        IJavaScriptExecutor jr = (IJavaScriptExecutor)driver;

        jr.ExecuteScript("vary('yilanyeh','叶怡兰');");