Selenium RC:需要点击

时间:2015-05-26 17:11:03

标签: selenium

我们有选择代码,当点击TD中的空白空间时会触发该选择代码。 " onclick = ..."是在TR。

当我获得元素的父元素(TD)并单击它时,它会触发元素上的点击而不是TD或TR。因此,如果基本元素是一个链接,它会触发它。如果基本元素是没有onClick事件的东西,它什么都不做。

我检查被点击的元素的标签名称,我知道它是TD。我也尝试过上两次同样的结果点击该行。

如何在行上触发click事件的任何想法???

示例HTML:

    private void imagePanel1_DragDrop_1(object sender, DragEventArgs e)
    {
        Type testTip = new TreeNode().GetType();
        YLScsImage.ImagePanel dropPicturePanel = (YLScsImage.ImagePanel)sender; 
        TreeNode movedNode;
        _mouseDownSelectedWindow = Rectangle.Empty;
        if (e.Data.GetDataPresent(testtype)) 
        {
            movedNode= (TreeNode)e.Data.GetData(testType);
            dropPicturePanel.Tag = movedNode.Tag;

            movedNode.ImageIndex = 1;
            movedNode.SelectedImageIndex = 1;
            movedNode.ForeColor = Color.Gray;


//**************************************
//HERE IS THE CODE FOR THE CREATED PANEL

            Panel panel1 = new Panel();
            Point point1 = this.PointToClient(new Point(e.X - 278, e.Y - 19)); //the imagePanel1 is on the form at the point 278,19

            panel1.AllowDrop = true;
            panel1.Location = point1;
            panel1.BackgroundImage = iltest.Images[0]; //nvm
            panel1.Height = 16;
            panel1.Width = 16;
            imagePanel1.Controls.Add(panel1); //am adding it to the imagePanel1


   //saving the locations of each panel
            string path = @"C:\Users\Cosic\Desktop\ICR\TABELA3_Paneli.txt"; // path to file
            if (!File.Exists(path))
                File.Create(path);
            if (panelBr == 0)
                System.IO.File.WriteAllBytes(path, new byte[0]); //brise ceo text iz fajla

            TextWriter sw = new StreamWriter(path, true);
            sw.WriteLine(e.X + "; " + e.Y + "; " + panel1.Width + "; " + panel1.Height + ";");
            sw.Close();
   //am done with saving
            panelBr++;//nvm

        }
    }

3 个答案:

答案 0 :(得分:0)

对于文档中的select ANY元素,您可以使用完整或部分xpath。

例如:

"/html/body/div[5]/div[2]/div/div[3]/div[6]/div/table/tr[1]/td[2]"

".//table/tr[1]/td[2]"

并点击任何其他元素后=)

你可以通过右键点击任何标签从firebug / dragonfly / chrome开发工具自动生成的完整xpath并选择“copy xpath”

答案 1 :(得分:0)

可能的问题是选择器。问题是元素的 SIZE Selenium不会点击高度/宽度为 0 的元素。 a有效的原因是因为它有一些innerText且大小不是 0 。希望它有意义。

答案 2 :(得分:0)

我通过生成一个单击TD元素的JavaScript命令找到了解决方法。不知道为什么它会以这种方式工作,但不能通过驱动程序,但它确实有效。

我们使用Prototype,所以如果我有ID:    $( 'SOME_ID')。向上()。点击() 如果我有链接的文字:    $$(“a:contains('Link Text')”)[0] .up()。click()