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发出单击事件。
请指教,谢谢。
您可以通过多种方式查找两个链接。选择哪个选项取决于页面上链接的位置,元素属性的唯一性,文本等。
也就是说,首先应尝试两种相关方法:
这是您应该如何使用它们:
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)
如果您不能依赖链接文本,则检查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()
Run Code Online (Sandbox Code Playgroud)