我有两个与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的点击事件。
请指教,谢谢。
答案 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()
其中driver
是Webdriver
个实例,例如:
from selenium import webdriver
driver = webdriver.Firefox()
如果您不能依赖链接文本,请检查title
和onclick
属性,并使用以下方法之一:
示例(使用第一种方法):
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();']