我正在尝试使用Python和Selenium Webdriver自动化一个过程。我能够成功登录并导航到我想发布内容的页面,但由于某种原因,系统无法识别XPath。
它给出以下错误:
无此类元素异常:找不到元素://* [@id ="widecol" ]/div/表单/p [1 ]/输入
下面是我的代码:
from selenium import webdriver
mydriver = webdriver.Firefox()
mydriver.get("https://www.phishtank.com/")
mydriver.maximize_window()
mydriver.find_element_by_xpath('//*[@id="username"]').send_keys("myusername")
mydriver.find_element_by_xpath('//*[@id="password"]').send_keys("mypassword")
mydriver.find_element_by_xpath('//*[@id="header"]/div[2]/form/input[3]').click()
mydriver.find_element_by_xpath('//*[@id="nav"]/ul/li[2]/a').click()
mydriver.find_element_by_xpath('//*[@id="widecol"]/div/form/p[1]/input').send_keys("sample text testing to fill form")
这是我的HTML代码
<div id="widecol">
<div class="padded">
<form method="POST">
<h2>Add A Phish</h2>
<ol>
<li>Visit our <b><a href="what_is_phishing.php">What is phishing?</a></b> page to confirm that the suspected phish meets all of the criteria.</li>
<li>Add a phish using the form below, or even better, submit a phish directly <a href="mailto:phish@phishtank.com">via email</a>.</li>
</ol>
<h3>Phish URL:</h3>
<p>
<input type="text" name="phish_url" style="width:90%;" value="" /><br />
<span class="small">Copy and paste the URL of the phishing website.</span>
</p>
<h3>What is the organization referenced in the email?</h3>
<p class="slim">
<select name="phish_target">
得到了以下错误:
无此类元素异常:找不到元素://* [@id ="widecol" ]/div/表单/p [1 ]/输入
下面是HTML代码:
<input type="text" name="phish_url" style="width:90%;" value=""> outer HTML code
这是我的XPath:
//*[@id="widecol"]/div/form/p[1]/input - Xpath
请告诉我到哪里找,谢谢。
4条答案
按热度按时间ifmq2ha21#
您需要引入 WebDriverWait 以使元素可单击,您可以使用以下代码行:
flseospp2#
没有完整的HTML,我们无法判断XPath是否正确。您可以尝试包含更多的外部HTML代码吗?
您可以尝试在点击最后一个URL后等待,也许元素还没有加载。您也可以检查输入是否在iframe中,这可能是导致问题的原因。
ctehm74n3#
你能试试下面的方法吗?
应该对那个输入有效。只是为了试验/错误起见,在这样做之前尝试一个小的等待。
zlwx9yxi4#
新的Selenium版本不允许。
尝试以下代码
然后将“find_element_by_xpath语句”更改为
You can refer to the link to know more