Java 使用selenium在动态网页中查找元素

Java 使用selenium在动态网页中查找元素,java,selenium,dynamic,input,firepath,Java,Selenium,Dynamic,Input,Firepath,我试图在一个动态页面中找到一个输入字段,它根据打开或关闭的面板的数量来改变web结构,主要是div和style属性。因此,Firepath提供的Xpath在这里没有帮助。 我试图查找的输入字段/文本字段有一个类 class=v-textfield v-textfield-small 但当我尝试使用cssSelector查找具有给定类名的元素时,驱动程序会抓取3个类似的文本字段: “v-textfield v-textfield-small只读” “v-textfield v-textfield-

我试图在一个动态页面中找到一个输入字段,它根据打开或关闭的面板的数量来改变web结构,主要是div和style属性。因此,Firepath提供的Xpath在这里没有帮助。 我试图查找的输入字段/文本字段有一个类

class=v-textfield v-textfield-small

但当我尝试使用cssSelector查找具有给定类名的元素时,驱动程序会抓取3个类似的文本字段:

  • “v-textfield v-textfield-small只读”
  • “v-textfield v-textfield-small小ws-right”
  • “v-textfield v-textfield-small”
  • 为了便于理解,这里是包含文本字段的面板的html代码

    
    ...
    一些标签
    一些标签2
    一些标签
    
    使用以下xpath进行相同的操作:-

    //div[@class='v-absolutelayout-wrapper' and contains(.,'Some')]
    
    这将返回以下输出:-

    1:一些标签

    2:一些标签2

    3:一些标签

    如果只需要带有label2输入标记的元素,请使用此xpath

    //input[@class='v-textfield v-textfield-small small']
    
    更具体

    //div[@id='formpanel']//input[@class='v-textfield v-textfield-small small']
    

    希望它能帮助您:)

    您可以使用以下XPath:

    //input[@class='v-textfield v-textfield-small small readonly']
    //input[@class='v-textfield v-textfield-small small']
    //input[@class='v-textfield v-textfield-small small ws-right']
    
    尝试:


    如果我只编写代码:div.findElement(By.cssSelector(“input.v-textfield.v-textfield-small.small”))。sendKeys(“111 Auto”);它抓取了错误的InputField那么//input[@class='v-textfield v-textfield-small']wc@AnasAsif有什么问题。。。请随便投票。。这对我真的很有帮助。。谢谢:)没有只读的课程。。我想你是在考虑容器不,我在想我写的东西。此外,这是您的代码:如果我使用您提到的第二个xpath。那么它给我的是假。也许它又一次抓住了这三个。剩下的两个人都工作了
    .v-textfield.v-textfield-small.small:not(.readonly):not(.ws-right)