如何在selenium中识别没有Xpath的按钮

时间:2016-02-04 08:32:20

标签: selenium selenium-webdriver

代码低于

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:orientation="vertical"
    tools:context=".CustomMainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#b6006a"
        android:gravity="center_horizontal"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/ImageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:gravity="right"
            android:padding="10dip"
            android:scaleType="fitXY"
            android:src="@android:drawable/ic_dialog_dialer" />

        <TextView
            android:id="@+id/TextView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#b6006a"
            android:gravity="left"
            android:padding="10dip"
            android:text="Nava Messenger"
            android:textColor="#fff"
            android:textSize="18dp" />
    </LinearLayout>

    <TextView
        android:id="@+id/TextViewSender"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#fff"
        android:maxLines="1"
        android:text="Farhan"
        android:textColor="#000"
        android:textSize="18dp" />

    <TextView
        android:id="@+id/TextView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#fff"
        android:maxLines="4"
        android:text="FarhanFarhanFarhan"
        android:padding="18dip"
        android:textColor="#000"
        android:textSize="18dp" />


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center_horizontal"
        android:orientation="horizontal">

        <EditText
            android:id="@+id/EditText1"
            android:layout_width="0dp"
            android:layout_weight="3"
            android:layout_height="match_parent"
            android:ellipsize="start"
            android:gravity="center"
            android:hint="Write a message..."
            android:inputType="textCapWords"
            android:textColor="#b6006a" />

        <ImageButton
            android:id="@+id/ImageButton1"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:background="@null"
            android:gravity="right"
            android:scaleType="center"
            android:src="@android:drawable/ic_menu_send" />
    </LinearLayout>
</LinearLayout>

在selenium中我尝试了以下代码: -

<button type="submit" class="login-button">Login</button>

请在没有Xpath的代码中帮助我

2 个答案:

答案 0 :(得分:0)

您的班级名称为login-button而不是Login

driver.findElement(By.classname("login-button")).click();

您也可以使用partialLinkText

driver.findElement(By.partialLinkText("Login")).click();

partialLinkText正在查找HTML DOM上的子字符串

您也可以使用linkText

 driver.findElement(By.linkText("Login")).click();

LinkText在HTML DOM上看起来是相同的字符串

使用CSS-Selector

driver.findElement(By.cssSelector("button[class='login-button']")).click();

希望它会对你有所帮助:)。

答案 1 :(得分:0)

我总是喜欢Cssselector而不是Xpath,这取决于用户选择他们想要的以及他们对查找元素感到满意的内容。

如果您想了解CSSSELECTOR,以下链接将非常有用。 http://www.w3schools.com/cssref/css_selectors.asp

driver.findElement(By.cssSelector() “登录按钮”)点击();

我的建议是请检查元素并打开控制台 $( '登录按钮')

尝试这个,直到获得所需的元素。通过这种方式,您可以更灵活地获得最需要的元素。