[使用Python 2.7和Selenium Web-driver]
所以有这个HTML代码,这是一种按钮。如何在Selenium中单击它?
<div class="PermalinkProfile-dismiss">
<span class="Icon Icon--close Icon--large"></span>
</div>
我试过了:
elem = driver.find_element_by_xpath('//*[@id="permalink-overlay-body"]/div/div[1]').click
和
elem = driver.find_element_by_xpath('//*[@id="permalink-overlay-body"]/div/div[1]/span').click()
他们都没有工作。
有什么建议吗?
答案 0 :(得分:0)
click()
是一个不会返回值的函数,您无法将其赋值给变量。你可以做到
driver.find_element_by_xpath('//*[@id="permalink-overlay-body"]/div/div[1]/span').click()
或者
elem = driver.find_element_by_xpath('//*[@id="permalink-overlay-body"]/div/div[1]/span')
elem.click()
答案 1 :(得分:0)
您的选择器可能出错了。您可以尝试其他选择方法,例如git plugin
。
首先找到元素并查看它是否返回任何内容。修改您使用的<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:background="#00632e"
android:baselineAligned="false"
android:weightSum="1.0">
<LinearLayout
android:layout_width="0dp"
android:layout_weight="0.8"
android:layout_height="match_parent"
android:layout_gravity="center_vertical">
<TextView
android:layout_width="200dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Medium Text"
android:gravity="center"
android:layout_gravity="center_vertical"
android:textColor="#000"
android:background="#fff"
android:id="@+id/textView2" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/buttonBarButtonStyle"
android:text="Start"
android:gravity="center"
android:textColor="#fff" />
</LinearLayout>
</LinearLayout>
方法并尝试使用您的选择器模式,直到匹配为止 - 返回您想要的元素。
elem = driver.find_element_by_css_selector(&#39; .PermalinkProfile-dismiss span&#39;)
有关可能的方法,请参阅Locating elements指南。
如果你有元素而不是点击它:
find_element_by_css_selector()
正如盖伊所说,find_*
并没有返回任何内容,所以你需要分两步完成。