我正在使用chromedriver,我有以下网页源:
<form id="stepLinksForm" name="stepLinksForm" method="POST" target="mainFrame">
<ul>
<li> <a href="javascript:submitLink('action_one.htm')">Action One</a> </li>
<li> <a href="javascript:submitLink('action_two.htm')">Action Two</a> </li>
<li> <a href="javascript:submitLink('action_three.htm')">Action Three</a> </li>
</ul>
</form>
在单击任何一个ref之后,浏览器将转到一个新页面,但url保持不变。
我想要实现的是单击第一个ref,即
<li> <a href="javascript:submitLink('action_one.htm')">Action One</a> </li>
我试过用xpath查找元素、链接文本和其他一些在互联网上建议的方法,但都不起作用。 如果有人能帮忙,我真的很感激。
要单击第一个文本为Action One的ref,您可以使用以下任一选项(Python Language Binding Art):
linkText
:cssSelector
:xpath
:更新
由于您无法通过
LINK_TEXT
、CSS
、XPATH
找到元素,甚至在time.sleep()
之后,都可以很好地确认元素位于由<frame>
标记表示的框架内。现在,当您能够通过“Inspect”看到它们时,在HTML DOM中找到元素,并向上遍历HTML。在某个时刻,您会发现一个
<frame>
标记。首先获取标签的属性,然后将切换到预期的帧,然后尝试使用我的答案中提供的定位策略。在这里您可以找到关于How can I select a html element no matter what frame it is in in selenium?的详细讨论您可以直接调用javascript代码,而不是单击:
相当于javascript:submitLink('action_one.htm')
或者您可以通过它的文本找到a:
相关问题 更多 >
编程相关推荐