我正在尝试使用selenium在网页中找到一个元素。当我在web元素上“右键单击”并检查时,我可以在控制台中找到html代码。但是,当我从控制台复制相同元素的xpath并尝试在firepath中执行它时,它会显示“No matching nodes”。为什么会这样,我该如何解决这个问题?
这是元素的HTML。
<input id="mobile" type="text" onchange="javascript:dispLocMob(this);
"onkeydown="javascript:dispLocMob(this);
"onkeyup="javascript:dispLocMob(this);" value="" maxlength=
"10" placeholder="Mobile Number" name="mobile">
这就是我在做的事情:
receiverMobileElement = browser.find_element_by_xpath('//*[@id="mobile"]')
请帮忙。
答案 0 :(得分:0)
为什么在 unique xpath
找到元素时使用id
?
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://example.com')
target_element = browser.find_element_by_id('mobile')
答案 1 :(得分:0)
我总是说螺丝萤火虫,使用Chrome控制台..
从它的外观来看,获得这个特定元素的最佳方法是以下两个选项之一(假设'id = mobile'是唯一的)..
By.cssSelector("#mobile");
By.xpath("//input[@id = 'mobile']");
使用chrome控制台 - &gt;
document.querySelectorAll( “#移动”)
对于xpath,请输入$ xBy.xpath(“// input [@id ='mobile']”);
只是一个建议......如果您的代码有效,请不要担心firebug,并在chrome中认真尝试这种方式!!