如何使用Selenium点击某些东西

时间:2014-12-26 03:16:11

标签: python python-2.7 selenium selenium-webdriver

我有两个与Selenium相关的简单问题。实际上我是这个框架的新手(对吧?)。

提出的问题是:

<a href="http://url.com" onclick="somejsfunc();" title="title_text">HERE ARE CHINESE CHARACTERS</a>

<a href="javascript:void(0);" onclick="anotherjsfunc();">HERE ARE ANOTHER CHINESE CHARACTERS</a>

如何使用selenium点击每个锚?

请注意,第一个有关键字&#34; title&#34;,我知道我可以将它用于匹配,但不知道如何实现它。我不打算使用那里出现的字符,因为它根据不同的项目而有所不同。

第二种,在这种情况下,中国的根茎是固定的。由于没有其他线索,我想我只能用它来检测并发出Selenium的点击事件。

请指教,谢谢。

2 个答案:

答案 0 :(得分:4)

您有多种方法可以找到这两个链接。选择哪个选项取决于页面上链接的位置,元素属性的唯一性,文本等。

尽管如此,首先应该尝试两种相关的方法:

以下是您应该如何使用它们:

first_link = driver.find_element_by_link_text(u'HERE ARE CHINESE CHARACTERS')
first_link.click()

second_link = driver.find_element_by_link_text(u'HERE ARE ANOTHER CHINESE CHARACTERS')
second_link.click()

其中driverWebdriver个实例,例如:

from selenium import webdriver

driver = webdriver.Firefox()

如果您不能依赖链接文本,请检查titleonclick属性,并使用以下方法之一:

示例(使用第一种方法):

first_link = driver.find_element_by_xpath('//a[@title="title_text"]')
first_link.click()

second_link = driver.find_element_by_xpath('//a[@onclick="anotherjsfunc();"]')
second_link.click()

答案 1 :(得分:1)

在这两种情况下都可以使用cssSelector。 第一个a标记的CSS应该看起来像

[title='title_text']

和第二个a代码

[onclick='anotherjsfunc();']