我正在抓fb学习。
我正在编写以下行,但无法找到页面上的按钮。 (我不想使用href,因为不同的fb帖子的href会有所不同)
likeButton = driver.wait.until(EC.presence_of_element_located(
(By.CLASS_NAME, "_2e4w nowrap")))
likeButton[0].click #this code is never reached
我也试过这个
likeButton = driver.wait.until(EC.presence_of_element_located(
(By.CSS_SELECTOR, "._2e4w.nowrap")))
答案 0 :(得分:0)
我假设您正在废弃HTML,所以请告诉我这是不是真的。
HTML中的类名称并不是唯一的。 HTML中的多个对象可能具有相同的类名,但通常多个内容不会具有相同的apostrophe-video-widgets
。 id
通常是唯一的。
id
而不是
<thing id="some_id"></thing>
我会使用类来缩小搜索范围,然后使用<thing class="some_class"></thing>
进行选择。
此外,如果有选择类的css选择器,它们看起来像这样:
id
如果它们基于.some_class {
//some css
color: example_color;
}
,则它们看起来像这样
id
编辑:
我也猜到它正在寻找一个单一的名字。我也会尝试这样的事情:
#some_id {
//some css
color: example_color;
}
如果你想要likeButton = driver.wait.until(EC.presence_of_element_located(
(By.CLASS_NAME, "_2e4w")))
,可能还有一种选择多个类名的方法。我不希望nowrap
工作。
答案 1 :(得分:0)
字符串输入应该是“_2e4w”而不是“_2e4w nowrap”这些是两个单独的类
要获取按钮列表“需要使用所有元素的存在”
likeButton = driver.wait.until(EC.presence_of_all_elements_located(
(By.CLASS_NAME, "_2e4w")))