因此,我有一个基本的Selenium程序,您可以在其中单击一个按钮,然后将“ Hello World”文本复制到剪贴板。如果代码不在无头模式下,则该代码有效,但我希望它在无头模式下工作。这是启用无头模式的代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import pyperclip
CHROME_PATH = 'C:\\Program Files
(x86)\\Google\\Chrome\\Application\\chrome.exe'
CHROMEDRIVER_PATH = 'C:\\Users\\ACER\\Desktop\\chromedriver_win32\\chromedriver.exe'
chrome_options = Options()
chrome_options.set_headless()
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH,
chrome_options=chrome_options
)
driver.get("file://C:/Users/ACER/Desktop/index.html")
driver.find_element_by_class_name("button").click()
message = pyperclip.paste()
driver.close()
if message == "":
print("Failed")
else:
print(message)
这是HTML代码:
<!DOCTYPE html>
<html>
<head>
<style>
.wrapper {
text-align: center;
}
.button {
background-color: black;
border: none;
color: white;
padding: 20px 30px;
font-size:30px;
cursor: pointer;
}
.button:hover {
background-color: grey;
}
</style>
</head>
<body>
<div class="wrapper">
<button class="button" onclick="copyToClipboard('Hello World')">Click
Here</button>
</div>
<script type="text/javascript">
function copyToClipboard(text){
var dummy = document.createElement("input");
document.body.appendChild(dummy);
dummy.setAttribute('value', text);
dummy.select();
document.execCommand("copy");
document.body.removeChild(dummy);
}
</script>
</body>
</html>
答案 0 :(得分:0)
我遇到了同样的问题,在无头模式下,页面呈现的方式有所不同。明确设置窗口大小对我来说就是固定的。
您可以在选项中进行设置:
chrome_options.add_argument("--window-size=1440, 900")
或直接在代码中
driver.set_window_size(1440, 900)