我目前正在使用以下Python和Selenium版本:
Python34 3.4.3(v3.4.3:9b73f1c3e601,2015年2月24日,22:43:06)[MSC v.1600 32 bit(Intel)]
硒 版本2.53.2
我希望有人知道答案。我试图做到的,是采取一个Facebook页面,因为它竟把滚动它,然后展开所有的“意见”,“回复”和“查看更多”即会显示在网页的链接。
到目前为止,我只尝试了“查看更多”链接,但我无法通过点击链接来处理它。我认为我的基本知识告诉我,它找到了xpath,因为我没有得到这个错误,但我做的是.click函数,后面立即调用。我也试过使用find_element_by_link_text('See More')
,但是这不起作用。我还设法找到了html结构,其中有两个看到更多链接的例子,但由于它们不相同,我不知道如何实现这些:
//div[3]/div[2]/div/span/span/a/span
//div[2]/div[2]/div/span/span/a/span
//div[@id='id_58591b7145b529535706885']/span/span/a/span
//div[@id='id_58591f8225af12f45796030']/span/span/a/span
如果有人有任何建议或修改或替代选择,那么我将非常感谢他们。提前谢谢,
import os
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
#Global Variables
target = "serena.xxxx.x"
username = "xxxxx@xxxxxx.com"
password = "xxxxxxxx"
#code block to log in user
def logmein():
search_box = driver.find_element_by_name('email')
search_box.send_keys(username)
search_box = driver.find_element_by_name('pass')
search_box.send_keys(password)
search_box.submit()
driver = webdriver.Firefox()
driver.get("https://www.facebook.com//")
logmein()
elm = driver.find_element_by_tag_name('html')
elm.send_keys(Keys.END)
time.sleep(2)
elm.send_keys(Keys.END)
time.sleep(2)
elm.send_keys(Keys.END)
time.sleep(2)
elm.send_keys(Keys.END)
time.sleep(2)
elm.send_keys(Keys.HOME)
# Initiates See More Open
SeeMore = driver.find_element_by_xpath("//a[@class='see_more_link']")
print("Found See More")
SeeMore.click()
print("Expand SeeMore option")
答案 0 :(得分:1)
这有帮助吗?
import os
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
#Global Variables
target = "..."
username = "..."
password = "..."
def logmein():
search_box = driver.find_element_by_name('email')
search_box.send_keys(username)
search_box = driver.find_element_by_name('pass')
search_box.send_keys(password)
search_box.submit()
driver = webdriver.Firefox()
driver.get("https://www.facebook.com//")
logmein()
SeeMore = WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.LINK_TEXT, 'See More...')))
print("Found See More")
time.sleep(2) # apparently there is some javascript execution that requires this sleep to be here.
SeeMore.click()
print("Expand SeeMore option")
很高兴看到上述链接的屏幕截图。通过这种方式,我可以访问模拟Facebook页面并确保其有效。
答案 1 :(得分:0)
“显示设置”->“比例和布局”:
大小应为100%-并且必须与浏览器的缩放比例相匹配-也是100%
我在IE上遇到了大约12个小时的问题,尝试了单击的所有可能变化,将鼠标悬停在元素上,然后使用find_element_by_link_text
单击,更新了所有.etc。并尝试了人们在stackoverflow中建议的一些方法-无效。
在浏览器中放大到100%并将显示比例设置为100%可以达到目的。