如何使用硒单击某物

Vic*_*.Li 1 python selenium python-2.7 selenium-webdriver

我有两个与硒有关的简单问题。实际上,我是这个框架的新手。

提出以下问题:

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

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

如何使用硒单击每个锚点?

请注意,第一个具有关键字“ title”,我知道我可以将其用于匹配,但不知道如何实现。我不打算使用此处提供的CHARACTERS,因为它取决于不同的项目。

第二,在这种情况下,中文字符是固定的。由于没有其他线索,我认为我只能用它来检测并通过Selenium发出单击事件。

请指教,谢谢。

ale*_*cxe 5

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

也就是说,首先应尝试两种相关方法:

这是您应该如何使用它们:

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()
Run Code Online (Sandbox Code Playgroud)

这里driver是一个Webdriver例子,例如:

from selenium import webdriver

driver = webdriver.Firefox()
Run Code Online (Sandbox Code Playgroud)

如果您不能依赖链接文本,则检查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()
Run Code Online (Sandbox Code Playgroud)

  • 很好的解释。入门者更容易遵循。 (2认同)