te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>XPATH定位到的元素有多个,该怎么办?
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

XPATH定位到的元素有多个,该怎么办?

运维笔记admin3浏览0评论

XPATH的简单定位元素有多个该怎么办??通过find_elements来找到定位列表,得到的list根据后方的中括号来取值,如下

driver.find_elements(By.XPATH, "//input[@id='su']")[0].click()

当然你也可以用JavaScript来进行定位点击。
例如在百度首页,搜索一下,在控制台进行以下命令。

$x("//input[@id='su']")[0].click()

当XPATH定位到多个标签时,可以选择运行第几个标签,注意是从0开始的。
而用selenium执行webdriver时必须精准定位,若用此方法就可以避免定位繁琐的尴尬,当然算是执行js命令,写在代码里面就方便多了。

driver.execute_script("var q = $x(\"//input[@id='su']\")[0].click()")
# 单斜杠为转义符
发布评论

评论列表(0)

  1. 暂无评论