用selenium python模拟onclick

2024-10-01 17:29:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我对selenium还很陌生,我正在尝试如何模拟onclick

这是我在检查html源代码时在源代码中看到的

<a href="#" onclick="document.getElementById('pN').selectedIndex = 0;document.getElementById('optionList').submit();return false"> <img src="images/ListingOptionSearch.jpg" onmouseover="this.src='images/ListingOptionSearchHover.jpg'" onmouseout="this.src='images/ListingOptionSearch.jpg'"> </a>

我试过了:

^{pr2}$

但我得到了InvalidSelectorException

有什么想法吗?在

谢谢!在


Tags: src源代码htmlseleniumthisdocumentjpghref
2条回答

你用谷歌搜索了例外吗?这意味着您的选择器无效。您尝试使用的CSS选择器的格式是tag[attribute='value']。你没有用引号括起来的值。。。在这种特定情况下,这是不可能的,因为您的值已经包含单引号。在

因为A标记包含IMG标记,所以您可以单击IMG标记并获得相同的效果。下面这样的CSS选择器应该可以工作。在

img[src='images/ListingOptionSearch.jpg']

还有其他选择器,可能会工作,但有一个网页链接,等等。我只是猜测他们是否会是唯一的。在

你可以用

from selenium import webdriver
browser = webdriver.Chrome(somepath) # You should know what this does.
browser.execute_script("document.getElementById('pN').selectedIndex = 0;document.getElementById('optionList').submit();return false")

这意味着您可以使用.execute_script来执行Javascript代码,太棒了,对吧?在

无效的InvalidSelectorException是在没有元素或经验的情况下引发的预期,可能存在iframe,您必须使用.switch_to.frame才能与之交互。 另外,我喜欢使用XPath(总是最可靠的),它需要一点时间来适应,但是通过一两个小时的练习,您就可以做到。在

JeffC有一个很好的观点,HTML的结构,JS总是可以改变的。 您可以使用find_element_by_xpath(xpath).click(),但也有更动态的方法来预测结构是否会发生变化,使用类似find_element_by_name或其他可用的方法:

^{pr2}$

相关问题 更多 >

    热门问题