如何通过Selenium跟踪JavaScript链接(无链接文本)



我正在尝试完成一个项目,在那里我自动获取我们所有打印机的每日点击次数。佳能iR5070有一个Web界面,但只需单击几下即可到达,我无法执行链接单击或关注。

我要关注的链接是这个 HTML。

<a href="javascript:load_device()" >
<img src="en/media/bm10.gif" border="0", alt="Device Information", title="Device Information">
</a>

如果它有帮助,这就是有问题的javascript函数: 该函数:

function load_cdevice() {
chgImg(5);
var cgi_str = "en/pages/d_cbody.htm?";
// for Expire Cache!!
var now_time = new Date();
cgi_str += "Dummy=" + now_time.getTime();
parent.Body.location.href = cgi_str;
}

以下是我未成功尝试的内容...(load_cdevice是我想要的最终目的地,因为那是点击次数的页面,但我不确定是否可以从登录页面访问它。

def get_5070_info():
print("Ripping info for Canon Imagerunner 5070")
driver = webdriver.Chrome()
driver.get('http://10.0.0.34')
# driver.implicitly_wait(3)
assert "Remote UI" in driver.title
# 'document.load_cdevice()
# driver.execute_script('load_device()')
# driver.execute_script('load_cdevice()')
# driver.execute_script('javascript:load_device()')
# driver.execute_script('javascript:load_device')
# driver.execute_script('document.load_device()')
# driver.execute_script("window.location = load_device()'")
# driver.execute_script("window.location =avascript:load_device()'")

任何想法或可能获得此链接的 xpath? href 标签中没有链接文本,只有一个 img 链接。 谢谢!

要单击标题为设备信息的链接,您可以使用以下任一选项:

  • CSS_SELECTOR

    driver.find_elements_by_css_selector("a > img[title='Device Information'][src='en/media/bm10.gif']").click()
    
  • XPATH

    driver.find_element_by_xpath("//a/img[@title='Device Information' and @src='en/media/bm10.gif']").click()
    

最新更新