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

2024-04-27 03:28:52 发布

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

我正在努力完成一个工作项目,在那里我可以自动获取所有打印机的每日点击次数。佳能iR5070有一个网页界面,但它需要几次点击才能到达,我不能执行链接点击或以下。你知道吗

我想遵循的链接是在这个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\u 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链接。谢谢您!你知道吗


Tags: imgexecute链接devicedriverscriptloadlocation
1条回答
网友
1楼 · 发布于 2024-04-27 03:28:52

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

  • 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()
    

相关问题 更多 >